2013-07-08 19 views
0

Я пишу автоматизированный сценарий, используя Selenium WebDriver с Ruby. В случае, у меня нажать на кнопку «Отмена» и после это HTML-код для него:Невозможно нажать кнопку «Отмена»

<div class="ui-dialog-buttonset"> 
<button class="otherButtonClass" type="button" role="button" aria-disabled="false"> 
    <span class="ui-button-text">Rename</span> 
</button> 
<button class="cancelButtonClass" type="button" role="button" aria-disabled="false"> 
    <span class="ui-button-text">Cancel</span> 
</button> 
</div> 

Для нажатия на «Отмена» кнопку, я написал следующее:

driver.find_element(:xpath, "//button[@class='cancelButtonClass']").click 

здесь действие щелчка не происходит. Я попробовал спать, wait.until {element.displayed? } все еще проблема не была решена. Ошибка выброшен является «Элемент не виден и, следовательно, не может быть взаимодействовали с»

Однако, если я выполняю нажмите действия на кнопку «переименовать», это работает:

driver.find_element(:xpath, "//button[@class='otherButtonClass']").click 

Пожалуйста, помогите мне понять, почему это происходит. Я смущен: «Переименовать» и «Отменить» имеют похожий код html и по-прежнему нажимают «Переименовать» пропуски, а нажатие «Отмена» терпит неудачу. Почему так?

ответ

0

Вы можете попробовать ниже:

script = <<-end 
element = arguments[0]; 
element.setAttribute('aria-disabled','true'); 
return element; 
end 

# select the 'Cancel' button element 
elem = driver.find_element(:css,'div.ui-dialog-buttonset>button')[1] 
# setting the 'aria-disabled' to true 
elem = driver.execute_script(script,elem) 
#after enabling the css attribute 'aria-disabled' click on the 
#cancel button 
elem.click 
0

Использование CSS выбор не будет идеальным решением в случае, если кнопка CSS являются динамическими для каких-либо действий при наведении. Также простым способом выбора данного элемента является использование следующего xpath.

driver.find_element(:xpath, "//span[text()='Cancel']").click 
+0

Да, я согласен, я предложил решение, только если CSS кнопки динамический. – Karthikeyan

Смежные вопросы