使用Actions类单击禁用的元素不起作用

时间:2013-09-06 15:06:40

标签: selenium webdriver action

我有一个测试,我需要点击一个禁用的按钮。 我正在使用Actions类来执行此操作。 当用户单击该按钮时,将生成警报。 以下是我写的代码:

Actions mouseActions = new Actions(driver);
mouseActions.moveToElement(driver.findElement(By.id("disabled_element_id"))).click().build().perform();

然后我尝试切换到我得到异常的警报: 线程“main”中的异常org.openqa.selenium.NoAlertPresentException:不存在警报。

2 个答案:

答案 0 :(得分:2)

Selenium已被编写为复制用户交互,因此不允许与禁用的对象进行交互,因为人们无法进行交互。

你可以;

  • 复制用户启用按钮的过程。

  • 使用JavaScript启用或执行交互

答案 1 :(得分:2)

您需要使用JavaScriptExecutor执行此任务,WebDriver无法点击已禁用或不可见的元素。所以尝试像

这样的东西
JavascriptExecutor js = (JavascriptExecutor) webDriver;
js.executeScript("document.querySelector(\"button[id=yourButton]\").click()");