当前位置: 首页 > 面试题库 >

Selenium WebDriver单击隐藏的元素

钱繁
2023-03-14
问题内容

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

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

selenium.click(id="idOfHiddenField");

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

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


问题答案:

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

例如:

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

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

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

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

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



 类似资料:
  • 问题内容: 我正在尝试自动执行Google云端硬盘中的上传文件功能。 用于传递参数的元素以高度-0px隐藏。 用户操作均不会使该元素可见。因此,我需要一种变通方法来在不可见的元素上单击。 上述元素的xpath是- 我在用 例外- 元素当前不可见,因此可能无法与之交互。 我尝试使用JavascriptExecutor。但是找不到确切的语法。 问题答案: 试试这个: 上面的那堆将改变文件输入控件的可见

  • 问题内容: 我有一个显示一些记录的网格。当我单击记录并检查该元素时,将显示该元素已隐藏但在网格中可见。 我的HTML是: 上面的代码在检查时是隐藏的,但在网格中可见。 selenium代码: 问题答案: 首先说该元素存储在对象中,然后编写以下代码以单击该隐藏元素:

  • 问题内容: 我有一个元素,只有将鼠标悬停在该元素上时,该元素才可见。 我已经编写了以下代码,将其放在面板上,以便该元素可见。 现在,我尝试单击它,但它说-ElementNotVisibleError:量角器中的元素不可见错误。 基本方案是,我想将鼠标悬停在面板上,然后单击隐藏的元素,因为直到将元素悬停在该元素上才可见。 问题答案: 以下代码为我工作。

  • 我正在尝试测试智能GWT应用程序。我有一个关键问题。我无法使用以下命令单击元素: 是回报 找不到xpath“/html/body/div[10]/div[3]/div/div/div[1]/div/form/table/tbody[2]/tr[4]/td/table/tbody/tr/td[2]/span/img”(Capybara::ElementNotFound) 代码如下: 这个img上有很

  • 问题内容: 我正在尝试使用复选框和过滤器选项创建多选下拉列表。我试图隐藏列表,但我在外面单击却无法弄清楚。感谢你的帮助。 http://plnkr.co/edit/tw0hLz68O8ueWj7uZ78c 问题答案: 请注意,打开第二个弹出窗口(在具有多个选择的页面上)时,您的解决方案(问题中提供的Plunker)不会关闭其他框的弹出窗口。 通过单击一个框打开一个新的弹出窗口,单击事件将始终停止。

  • 我创建了一个包含三个项目的菜单:menu1、menu2、Menu3。 我希望能够单击菜单内的每个按钮,并显示相关的容器。 这已经管用了。 我似乎无法使相关的在再次单击按钮时隐藏起来。 我的代码: null null