Использование find_elements_by_xpath для двух условий для очистки sr c с использованием OR в Python - PullRequest
1 голос
/ 03 марта 2020

Я снимаю изображения с веб-сайта, но xpath зависит от элемента. Я прочитал этот пост , что можно использовать функцию или, выполнив find_elements_by_xpath.

Однако, когда я попытался воспроизвести пример, я больше не мог извлечь sr c изображения. Я неправильно выполняю функцию или?

images=driver.find_elements_by_xpath('// img[ @ id = "ember51"]' or '// img[@id="ember52"]')
print(images.get_attribute('src'))

Ошибка:

AttributeError: 'list' object has no attribute 'get_attribute'

Я попытался сделать для l oop, так что sr c может быть очищено:

images=driver.find_elements_by_xpath('// img[ @ id = "ember51"]' or '// img[@id="ember52"]')
for image in images:
    print(images.get_attribute('src'))

Но когда я использую для l oop, я получаю ту же ошибку. Не уверен, как заставить это работать.

Ответы [ 2 ]

0 голосов
/ 03 марта 2020

У вас неверный xpath выражение:

// img[ @ id = "ember51"]' or '// img[@id="ember52"]

Это должно:

//img[@id="ember51" or @id="ember52"]

Попробуйте это:

images=driver.find_elements_by_xpath('//img[@id="ember51" or @id="ember52"]')
for image in images:
    print(images.get_attribute('src'))
0 голосов
/ 03 марта 2020

Используйте | как или оператор.

images=driver.find_elements_by_xpath('//img[@id = "ember51"]|//img[@id="ember52"]')

enter image description here

Убедитесь, что весь xpath обернут в '.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...