javascript - Selenium WebDriver 点击隐藏元素

标签 javascript selenium selenium-webdriver webdriver hidden-field

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

我知道使用 selenium 1 我可以按如下方式执行此操作:

selenium.click(id="idOfHiddenField");

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

还是我只需要继续使用允许您单击隐藏字段的旧 selenium?

最佳答案

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

例如:

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

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

您需要做的就是通过 JavascriptExecutor 接口(interface)发出此 JS 指令,如下所示:

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

这将使用 JS 沙箱和合成点击事件来执行点击操作。虽然它违背了 WebDriver 用户事件模拟的目的,但您可以在像您的情况这样的小众场景中使用它,效果很好。

关于javascript - Selenium WebDriver 点击隐藏元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12040615/

相关文章:

javascript - 无法使用公共(public)共享服务检索其他 Controller 中的数据

java - Selenium 在 Firefox 配置文件中禁用插件

java - 如何使用 WebDriver 接受/消除未处理的警报?

excel - 如何在 Selenium WebDriver 中使用 Java 和 TestNG 中的 DataProvider 读取 excel 表中的多组值

java - 如果定位的元素为 'text',则显式等待不起作用

javascript - 删除jquery中没有特定后代元素的所有元素

javascript - JS获取对象坐标

javascript - 另一个带有 slidesjs 的 slider 内的 slider

测试网页内容

selenium - 无法连接到 Firefox