Можем ли мы найти xpath текста в селене python - PullRequest
1 голос
/ 30 апреля 2020

Рассмотрите следующую таблицу на веб-странице enter image description here

Я хочу знать, какие все компании из страны Великобритания. Таким образом, у меня есть входные данные в виде Великобритании. Могу ли я найти xpath этого 'UK' по селену python, чтобы я мог изменить этот xpath для получения соответствующего вывода. Возможно ли это, пожалуйста, дайте мне знать.

Заранее спасибо

Редактировать: Я предоставлю Великобританию в качестве ввода, я должен найти соответствующие компании в Великобритании Ответ: Если таблица содержит только тексты, то xpath = "//td[text()='Country']/preceding-sibling::td" Если элементы таблицы имеют ссылки на другие страницы
xpath - "//a[text()='Country']/parent::td/preceding-sibling::td", выберите элемент по вашему выбору, чтобы найти ответ

Если вы не уверены в том, что используете текст, вы можете использовать //TAG[contains(text(),'TEXT')]

Вы можете проверить свои xpath в Google Chrome "Developer Console" $any_variable("xpath")

Заинтересованные могут go через https://www.w3.org/TR/2017/REC-xpath-31-20170321/#id -внедрение в знать, как запросить XPaths

Спасибо

Ответы [ 2 ]

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

Полагаю HTML вроде:

<tr>
 <td>
     Island Trading
 </td>
 <td>
     Helen Bennet
 </td>
 <td>
     UK
 </td>
</tr>
......  (more rows)

# Make a for to get all TDs of each "important" TR, that is, 
# a TR that includes a TD with 'UK' text
for actualRow in self.driver.find_elements_by_xpath("//td[text()='UK']/parent::tr/td"):
    # Now select only the first TD
    thisRowsTD=actualRow[0]
    # Print information you need here (Text, id, name...)
    print(thisRowsTD.text)

Надеюсь, это поможет!

0 голосов
/ 30 апреля 2020

Да, вы можете использовать атрибут text, скажем, элемент, содержащий название страны: td.
Затем вы можете найти все элементы с текстом Великобритании через:

elements= driver.find_elements_by_xpath("//td[text()='UK']")
...