селен не может найти элемент с классом в IE

Я использую 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\']")

person Rob    schedule 15.04.2010    source источник


Ответы (1)


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

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

Должно быть:

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

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

Должно быть:

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

person Mads Hansen    schedule 17.04.2010