Selenium WebDriver clicking on hidden element(Selenium WebDriver 点击隐藏元素)
问题描述
您好,我想知道如何使用 Selenium WebDriver 点击隐藏元素和/或禁用元素.
Hi I would like to know how to click on hidden element and/or disable element by using Selenium WebDriver.
我知道使用 selenium 1 我可以这样做:
I know with selenium 1 I can do this as below:
selenium.click(id="idOfHiddenField");
这会起作用,但是对于 selenium 2 (WebDriver),这不起作用.我不想使用 jquery 来启用或显示隐藏字段或 JavaScript.这是因为大部分测试都使用 xpath.
and this would work, but with selenium 2 (WebDriver), this doesn't. I do not want to use jquery to enable or show hidden fields , or JavaScript. This is because most of the test are using xpath.
还是我只需要使用旧的 selenium,它允许您点击隐藏字段?
Or do I just have to stay with old selenium which allows you to click on hidden fields?
推荐答案
有一种更简单的方法可以使用 JavascriptExecutor
解决该问题.
There is a easier way to work around the problem using JavascriptExecutor
.
例如:
document.getElementsByClassName('post-tag')[0].click();
上面的 javascript 会点击此页面右上角的Selenium"标签(在您的问题旁边),即使它被隐藏(假设地).
The above javascript would click on the "Selenium" tag on the top right of this page (next to your question), even if it were hidden (hypothetically).
您需要做的就是通过 JavascriptExecutor
接口发出这条 JS 指令,如下所示:
All you need to do is issue this JS instruction via the JavascriptExecutor
interface like so:
(JavascriptExecutor(webdriver)).executeScript("document.getElementsByClassName('post-tag')[0].click();");
这将使用 JS 沙箱和合成点击事件来执行点击操作.虽然它违背了 WebDriver 用户活动模拟的目的,但您可以在小众场景中使用它,例如在您的案例中取得良好效果.
This would use the JS sandbox and synthetic click event to perform the click action. Although it defeats the purpose of WebDriver user activity simulation, you can use it in niche scenarios like in your case to good effect.
这篇关于Selenium WebDriver 点击隐藏元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:Selenium WebDriver 点击隐藏元素
基础教程推荐
- 如何使用JIT在顺风css中使用布局变体? 2022-01-01
- html表格如何通过更改悬停边框来突出显示列? 2022-01-01
- Vue 3 – <过渡>渲染不能动画的非元素根节点 2022-01-01
- 我可以在浏览器中与Babel一起使用ES模块,而不捆绑我的代码吗? 2022-01-01
- Chart.js 在线性图表上拖动点 2022-01-01
- 用于 Twitter 小部件宽度的 HTML/CSS 2022-01-01
- 自定义 XMLHttpRequest.prototype.open 2022-01-01
- 如何使用TypeScrip将固定承诺数组中的项设置为可选 2022-01-01
- 直接将值设置为滑块 2022-01-01
- Electron 将 Node.js 和 Chromium 上下文结合起来意味着 2022-01-01