2010-04-15 1 views
0

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

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\']") 

ответ

0

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

В первой версии XPATH отсутствует одна цитата ' в конце flash_notice.

Это должно быть:

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

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

Это должно быть:

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