Selenium WebDriver点击隐藏元素

Chu*_*ang 11 javascript selenium webdriver hidden-field selenium-webdriver

您好我想知道如何使用Selenium WebDriver点击隐藏元素和/或禁用元素.

我知道硒1我可以这样做,如下所示:

selenium.click(id="idOfHiddenField");
Run Code Online (Sandbox Code Playgroud)

这会有效,但是对于selenium 2(WebDriver),这不行.我不想使用jquery来启用或显示隐藏字段或JavaScript.这是因为大多数测试都使用xpath.

或者我只需要留在旧的硒,这可以让你点击隐藏的字段?

Ash*_*bhu 16

有一种更简单的方法来解决问题JavascriptExecutor.

例如:

document.getElementsByClassName('post-tag')[0].click();
Run Code Online (Sandbox Code Playgroud)

上面的javascript会点击此页面右上角的"Selenium"标签(问题旁边),即使它是隐藏的(假设).

您需要做的就是通过JavascriptExecutor接口发出这条JS指令,如下所示:

(JavascriptExecutor(webdriver)).executeScript("document.getElementsByClassName('post-tag')[0].click();");
Run Code Online (Sandbox Code Playgroud)

这将使用JS沙箱和合成点击事件来执行单击操作.虽然它违背了WebDriver用户活动模拟的目的,但您可以在特殊情况下使用它,例如在您的情况下效果良好.

  • 那不是重点.任何定位器都会找到任何隐藏的元素,XPath,CSS,id或其他任何东西.我建议您使用JSExecutor绕过WebDriver智能.你试过吗?它对你有用吗?您可以继续使用XPath定位器来查找WebElement并将其传递到JS脚本中,该脚本将单击传入的元素. (3认同)