一尘不染

Selenium WebDriver单击隐藏的元素

selenium

嗨,我想知道如何使用Selenium WebDriver单击隐藏元素和/或禁用元素。

我知道使用selenium1可以执行以下操作:

selenium.click(id="idOfHiddenField");

这将起作用,但是对于selenium2(WebDriver),则不起作用。我不想使用jquery来启用或显示隐藏字段或JavaScript。这是因为大多数测试都使用xpath。

还是我只需要保留旧的selenium,就可以单击隐藏的字段?


阅读 264

收藏
2020-06-26

共1个答案

一尘不染

使用可以更轻松地解决问题JavascriptExecutor

例如:

document.getElementsByClassName('post-tag')[0].click();

上面的javascript将单击此页面右上角的“ Selenium”标签(在您的问题旁边),即使该标签是隐藏的(假设是隐藏的)。

您需要做的就是通过这样的JavascriptExecutor接口发出此JS指令:

(JavascriptExecutor(webdriver)).executeScript("document.getElementsByClassName('post-tag')[0].click();");

这将使用JS沙箱和合成点击事件来执行点击操作。尽管它违反了WebDriver用户活动模拟的目的,但是您可以在适当的情况下使用它,例如,达到良好效果。

2020-06-26