我想知道调用WebElement的click()
方法与通过id查找元素并使用JavaScript
触发事件之间有什么区别。click
为了清楚起见,在第一种方法中,我调用了WebElement.click()
实例:
myWebElement.click();
第二种技术是:
((JavascriptExecutor)driver).executeScript("document.getElementById('myElementID').click()");
我有兴趣了解这两种单击Web元素的技术之间的所有差异,以及每种技术的优缺点。
Webdriver 利用浏览器的本机支持,使用id / xpath等将DOM元素映射到WebElement对象。
该JavascriptExecutor.executeScript
执行的 外部 在当前选择的浏览器窗口的上下文脚本。(如果您曾经使用过,则类似于
油脂 浏览器之类的增强浏览工具),并且 在脚本返回任何DOM元素(如果已将其转换为WebElement对象)的情况下。
可以说,与使用javascript调用相比,WebDriver在浏览器上模拟的点击与实际用户的点击类似。
实际上,使用WebDriver,并非所有事件都可以使用所有Web浏览器完美地自动化,实际上,也可以使用同一Web浏览器的不同版本来实现。(即,不同版本的IE,FF等具有不同的行为)。
WebDriver 仍然 是 为此提供的 最佳工具 。
在某个版本的IE上(大约4年前),我们观察到我们无法在生成的菜单链接上发送右键单击或将鼠标悬停在上面,因此我们使用js进行了模拟,这与浏览器非常独立。因此,您现在可以得出结论,执行外部javascript有什么用处。
此外,还有一些自动化的Web测试框架,这些框架对所有内容均使用javascript,而不是浏览器的本机支持。例如:http
:
//en.wikipedia.org/wiki/Sahi_%28software%29
参考:
事件是您在编程时系统内发生的动作或者发生的事情,系统通过它来告诉您在您愿意的情况下您可以以某种方式对它做出回应。例如:如果您在网页上单击一个按钮,您可能想通过显示一个信息框来响应这个动作。在这篇文章中我们将围绕事件讨论一些重要的概念,并且观察它们在浏览器上是怎么工作的。这篇文章并不做彻底的研究仅聚焦于您现阶段需要掌握的知识。—— MDN 事件即某个情况、某个事情。 当按钮被点击 视频播放、暂停 关
组件事件 Weex 提供了通过事件触发动作的能力,例如在用户点击组件时执行 JavaScript。下面列出了可被添加到 Weex 组件上以定义事件动作的属性: click 当组件上发生点击手势时被触发 longpress 当用户长按这个组件时,该事件将会被触发 appear 当组件的状态变为在屏幕上可见时,该事件将被触发 disappear 当组件被滑出屏幕变为不可见状态时,该事件将被触发 Rax
主要内容:事件捕获,事件冒泡,阻止事件捕获和冒泡,阻止默认操作在 JavaScript 中,我们将事件发生的顺序称为“事件流”,当我们触发某个事件时,会发生一些列的连锁反应,例如有如下所示的一段代码: 如果给每个标签都定义事件,当我们点击其中的 标签时,会发现绑定在 和 标签上的事件也被触发了,这到底是为什么呢?为了解答这一问题,微软和网景两公司提出了两种不同的概念,事件捕获与事件冒泡: 事件捕获:由微软公司提出,事件从文档根节点(Document 对象)流
主要内容:React 实例,React 实例,React 实例,React 实例,React 事件,React 实例,React 实例本章节我们将讨论如何在 React 中使用表单。 HTML 表单元素与 React 中的其他 DOM 元素有所不同,因为表单元素生来就保留一些内部状态。 在 HTML 当中,像 <input>, <textarea>, 和 <select> 这类表单元素会维持自身状态,并根据用户输入进行更新。但在React中,可变的状态通常保存在组件的状态属性中,并且只能用 se
在渗透的过程中,我们难免遇到有删除日志的需求,比如我们做了某些操作是必须要进行日志的删除,同时作为系统管理员也是必须掌握日志的操作与备份等等才能在遇到事件后的第一时间定位攻击和修复方案的提出。我们下面来看看Powershell在Windows事件日志中的表现。 CmdLet Powershell Version 2.0 关于PowershellV2的关于日志的CmdLet有下面的命令,给大家准备了
事件 事件,就是文档与浏览器发生特定的 交互瞬间。JavaScript与HTML之间的交互就是通过事件实现的。 事件流 所谓事件流,就是接收页面事件的顺序。 事件流分 事件冒泡流 与 事件捕获流。事件冒泡流是IE开发团队提出的,捕获流是Netscape开发团队提出的。 事件冒泡流 所谓事件冒泡,就是事件开始时由 最具体的元素(文档中嵌套最深的那个 节点)接收,然后逐级向上传播到较为不具体的节点(文
事件注册与触发 事件注册 取消事件注册 事件触发 eventTarget 事件注册 eventTarget.addEventListener(type,listener,[useCapture]) var elem = document.getElementById('div1'); var clickHandler = function(event){ // TO DO } elem.add
我正在使用Microsoft Visual C#2010 Express编写一个窗口窗体应用程序。我在写一个数独程序。我以前写过一次这个程序,并让它工作。由于硬盘故障,我丢失了源代码。我在表格上画了一个网格。我让鼠标事件工作了。我有重要的新闻活动要办。然后我在表单中添加了几个按钮,并让它们工作。但随后出现了一个问题。在我添加按钮并使其工作后,按键事件停止工作。为什么按钮事件和按键事件之间会发生冲突