Селен, ВЫБЕРИТЕ тег с определенными атрибутами

#python-3.x #selenium

Вопрос:

Мне нужно выбрать все элементы ссылки, у которых есть 'aria-lable' атрибут, под идентификатором «jsGrid_vgAllCases». Я сначала попробовал следующий код, он выберет все ссылки под идентификатором=’jsGrid_vgAllCases’

 for link in driver.find_element_by_id('jsGrid_vgAllCases').find_elements_by_tag_name('a'):
    print(link.text)
 

Затем я попробовал этот способ

 for link in driver.find_element_by_id('jsGrid_vgAllCases').find_elements_by_xpath('//a[@aria-label]'):
    print(link.text)
 

но он выберет все ссылки с атрибутом ‘aria-lable’, даже за пределами id=’jsGrid_vgAllCases’

Пожалуйста, посоветуйте, как это написать.

Спасибо

Ответ №1:

вы могли бы xpath так :

 //a[@aria-lable]
 

так что в основном это укажет на весь a тег, который имеет aria-lable атрибут.

а затем используйте его, как :

 all_links = find_elements_by_xpath("//a[@aria-lable]")
 

Теперь все all_links это список на Python. итак, вы печатаете его размер вот так :

 print(len(all_links ))
 

Вы можете выполнять множество операций в этом списке python.

Ответ №2:

 for link in driver.find_elements_by_xpath("//div[@id='jsGrid_vgAllCases']//a[@aria-label]"):
    print(link.text)
 

Это сработает

Комментарии:

1. сэр, это неэтичный подход, вы отредактировали исходный вопрос, а затем дали свой собственный ответ, не уведомив ответчика. У нас здесь такое не принято.

2. @cruisepandey на 1000% с тобой. Есть несколько пользователей, которые делают такие вещи. Что мы можем сделать против них?

3. Хорошо, поддержал ваш ответ 🙂 Вы также можете понизить его ответы / вопросы. Это действительно странная манера поведения таких пользователей.

4. Спасибо, но я не буду этого делать. Я не хочу просить кого-либо давать мне ответы на ответы, которые я дал не им. давайте сделаем что — нибудь получше: в случае, если вы увидите какой-нибудь интересный ответ, который я дал, — поддержите его. В случае, если это что-то хорошее, интересное, а не просто проблема с локатором / ожиданием и т. Д. Я сделаю то же самое с вами, точно так же, как я делаю с другими людьми здесь. Мы не конкуренты и не противники, а товарищи. По крайней мере, это то, чем мы должны быть 🙂

5. @Пророк : Конечно, приятель, я это понимаю. Я говорю это потому, что иногда ОП также удаляет свой вопрос, но если у вас есть голос за ваш ответ, ОП не сможет его удалить, это ТАК сложно. В данном случае я не отвергал его ответ, потому что я этого не делаю. но он мог бы удалить свой ответ, но не вопрос, так как мой ответ имеет один голос.