Селен не может найти элемент с классом в IE - PullRequest
0 голосов
/ 15 апреля 2010

Я использую selenium_client с огурцом, webrat + IE Как и следовало ожидать, Firefox работает отлично. Я пробовал следующее:

selenium.is_visible("css=#flash .flash_notice")
selenium.is_visible("xpath=//*[@id='flash']/*[@class='flash_notice]")
selenium.is_visible("xpath=//*[@id='flash']/*[contains(@class,'flash_notice]')")

оба не могут найти элемент. Я думаю, что это должно быть что-то делать с IE, глядя на html селен возвращается от IE ... Это выглядит так:

<UL id=flash>
  <LI className=flash_notice>Deleted</LI>
</UL>

Обратите внимание, что IE возвращает атрибут класса как className, это запутанный селен? Как я могу обойти это так, чтобы я мог использовать то же выражение для селена, используя IE и Firefox

Просто чтобы еще больше сбить нас с толку, этот пример работает, подтверждая, что он как-то связан с проверкой атрибута класса

selenium.is_visible("xpath=//*[@id='flash']/*[. =\'Deleted\']")

1 Ответ

0 голосов
/ 17 апреля 2010

Похоже, что ваши выражения XPATH сформированы неправильно.

В первом XPATH отсутствует одиночная кавычка ' в конце flash_notice.

Должно быть:

selenium.is_visible("xpath=//*[@id='flash']/*[@class='flash_notice']")

Второй XPATH имеет ' ] и ) не в порядке, что портит выражение.

Должно быть:

selenium.is_visible("xpath=//*[@id='flash']/*[contains(@class,'flash_notice')]")

...