嗨,我想知道如何使用Selenium WebDriver单击隐藏元素和/或禁用元素。
我知道使用selenium1可以执行以下操作:
selenium.click(id="idOfHiddenField");
这将起作用,但是对于selenium2(WebDriver),则不起作用。我不想使用jquery来启用或显示隐藏字段或JavaScript。这是因为大多数测试都使用xpath。
还是我只需要保留旧的selenium,就可以单击隐藏的字段?
使用可以更轻松地解决问题JavascriptExecutor。
JavascriptExecutor
例如:
document.getElementsByClassName('post-tag')[0].click();
上面的javascript将单击此页面右上角的“ Selenium”标签(在您的问题旁边),即使该标签是隐藏的(假设是隐藏的)。
您需要做的就是通过这样的JavascriptExecutor接口发出此JS指令:
(JavascriptExecutor(webdriver)).executeScript("document.getElementsByClassName('post-tag')[0].click();");
这将使用JS沙箱和合成点击事件来执行点击操作。尽管它违反了WebDriver用户活动模拟的目的,但是您可以在适当的情况下使用它,例如,达到良好效果。