невозможно выбрать элемент, используя xpath в селене и python - PullRequest
1 голос
/ 27 апреля 2020

Я пытался выбрать элемент по xpath и отобразить его, но я получаю сообщение об ошибке каждый раз, когда пытаюсь запустить код. Я получил xpath, выполнив элемент inspect и скопировав полный xpath, но он выдает ошибку. Это также динамическая форма c, поэтому я не могу выбрать прямой текст, и мне, вероятно, нужно будет использовать адрес, чтобы найти этот элемент, так как он меняется каждый раз, но я не смог выбрать этот определенный элемент. как выбрать элемент?

вот как я пытался выбрать элемент

name_from_doc=browser.find_element_by_xpath('/html/body/form/div[3]/div[3]/div/div[4]/div/div[2]/div[4]/div[2]/text()[1]')
print(name_from_doc)

ошибка, которую я получаю:

InvalidSelectorException: Message: invalid selector: The result of the xpath expression "/html/body/form/div[3]/div[3]/div/div[4]/div/div[2]/div[4]/div[2]/text()[1]" is: [object Text]. It should be an element.

Я хочу сохранить имя человека отдельно и адрес отдельно в двух разных переменных

enter image description here

Ответы [ 2 ]

1 голос
/ 27 апреля 2020

Для получения значения NAPERVILLE IL Используйте следующий xpath для получения элемента, а затем используйте splitlines() и последнее значение индекса.

name_from_doc=browser.find_element_by_xpath('//div[contains(.,"Billing Address")]/following::div[1]').text
print(name_from_doc.splitlines()[-1])

Обновление :

name_from_doc=browser.find_element_by_xpath('//div[contains(.,"Billing Address")]/following::div[1]').text
print(name_from_doc.splitlines()[0])
print(name_from_doc.splitlines()[1])
print(name_from_doc.splitlines()[-1])
1 голос
/ 27 апреля 2020

Поскольку текст Billing Address всегда будет присутствовать, то можно добраться до него, используя его текст в xpath, а затем найти его точное значение, используя following в xpath.
Вы можете сделать это следующим образом:

name_from_doc = browser.find_element_by_xpath("//div[contains(text(),'Billing Address')]//following::div[1]//br[2]")
print(name_from_doc.text)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...