Driver.findelement не находит элемент tab: - PullRequest
0 голосов
/ 17 мая 2011

У меня есть эта проблема с моим тестом ..

driver.findElement(By.xpath("//html/body/div[2]/div/div/div[2]/div[2]/div/div[2]/div/div/div/div/div/div/div/ul/li[2]/a[2]/em/span/span/span")).click();

не найти элемент.

затмение показывает это сообщение об ошибке

Невозможно найти узел, используя // html / body / div [2] / div / div / div [2] / div [2] / div / div [2] / div / div / div / div / div / div /div / ul / li [2] / a [2] / em / span / span / span

1 Ответ

0 голосов
/ 17 мая 2011

РЕДАКТИРОВАТЬ: Сообщение отредактировано, чтобы отразить ответ на актуальную проблему.Ниже следует оригинальный ответ.

Длинные выражения XPath хрупки, и тесты подвержены ошибкам, полагаясь на них: совершенно несвязанные изменения где-либо еще в документе могут испортить все, даже если вы знаете опроблема в том, что код тестов поддерживать сложнее.

В данном конкретном случае, поскольку сайт генерируется GWT, это еще хуже - контроль над изменениями HTML практически отсутствует.Хорошим решением при использовании GWT является использование метода sureDebugId (см. Ссылку в комментариях).


Вы уверены, что это выражение XPath является правильным?Работают ли другие тесты с этим драйвером?

Я бы рекомендовал избегать использования таких длинных выражений XPath - не будет ли безопаснее в долгосрочной перспективе начинать выражение с указанного в id div где-нибудь встраница, а не в корне DOM?

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