селен не может найти элемент - PullRequest
2 голосов
/ 18 июля 2011

Я тестирую свое веб-приложение с использованием селена, но драйвер не может найти мой элемент, стиль элемента настроен на отображение: ничего не видно, и я использую xpath, чтобы получить этот элемент, вот мой xpath

By.XPath(".//*[@id='box']/table/tbody/tr[3]/td[4]")

Пожалуйста, сообщите.

Большое спасибо

Ответы [ 3 ]

1 голос
/ 18 июля 2011

tbody выглядит подозрительно для меня.Это часто неявно вставляется некоторыми браузерами.Я не знаю никого, кто использует это в HTML.

Поэтому вы можете попробовать XPath без него:

By.XPath ("// * [@ id = 'box'] / table / tr [3] / td[4] ")

Если это не поможет: не могли бы вы добавить (X) фрагмент HTML?

0 голосов
/ 18 июля 2011

Возможно, по причинам отладки (и, возможно, не только для этого) вам следует разделить свой xpath. Например (в псевдо-питоне):

tables = driver.findElementsByXPath("//*[@id='box']/table")
if len(tables) == 0:
   break

trs = tables[0].findElementsByXPath("/tr")
if len(trs) == 0:
   break

tds = trs[3].findElementsByXPath("/td") # or maybe trs[2]
if len(tds) == 0:
   break

td = tds[4] # or maybe tds[3]
0 голосов
/ 18 июля 2011

Удалить эту начальную точку:

By.XPath("//*[@id='box']/table/tbody/tr[3]/td[4]")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...