当我执行 driver.findElementById("some id").click() 时内部会发生什么?它执行javascript吗?
What happens internally when i do driver.findElementById("some id").click()? does it execute a javascript?
当我 driver.findElementById("some id").click()
时内部会发生什么?它执行 java 脚本吗?我想了解点击是如何工作的?它执行 java 脚本还是执行一些 API 调用?
selenium 的早期版本,Selenium RC,用于在浏览器加载页面时注入 javascript 函数,并使用这种方法针对所有浏览器。
随着 Selenium WebDriver 的引入,selenium 使用浏览器内置的自动化支持,这因浏览器而异。因此,一个用于 Firefox 的 Firefox 插件,一个用于 IE 的 .dll,Chromium 维护一个用于 Chrome 自动化的 Chrome 驱动程序。所以本机支持与旧 javascript 方法。
如果您还没有了解 Web 驱动程序的介绍,它会让您更接近
http://docs.seleniumhq.org/docs/03_webdriver.jsp
如果您具体询问,"What happens when I do WebElement.click()
?" 答案是,"It depends." 大多数浏览器驱动程序在调用 click()
时使用两种不同模式中的一种。如果您使用的是所谓的 "native events,",那么将使用适合您 运行 所在平台的 OS 级机制执行点击。另一方面,如果您使用 "simulated events,",则这些是 JavaScript 元素上的模拟点击。您还可以告诉大多数驱动程序,通常是通过 DesiredCapability
,您想要使用本机事件或合成事件。在特定情况下,您实际使用的是本机事件还是合成事件,这在很大程度上取决于浏览器和平台,因为浏览器和浏览器之间的默认设置不同,OS 到 OS。
如果您的问题更笼统,例如,"Does WebDriver use JavaScript for any of its functionality?" 答案几乎可以肯定,"Yes, drivers do rely on JavaScript for at least some functionality." 请注意,这意味着通过浏览器设置关闭 JavaScript 执行几乎可以肯定破坏您要自动化的任何浏览器的驱动程序。
貌似webdriver使用模拟事件请参考- https://w3c.github.io/webdriver/webdriver-spec.html#clicking
当我 driver.findElementById("some id").click()
时内部会发生什么?它执行 java 脚本吗?我想了解点击是如何工作的?它执行 java 脚本还是执行一些 API 调用?
selenium 的早期版本,Selenium RC,用于在浏览器加载页面时注入 javascript 函数,并使用这种方法针对所有浏览器。
随着 Selenium WebDriver 的引入,selenium 使用浏览器内置的自动化支持,这因浏览器而异。因此,一个用于 Firefox 的 Firefox 插件,一个用于 IE 的 .dll,Chromium 维护一个用于 Chrome 自动化的 Chrome 驱动程序。所以本机支持与旧 javascript 方法。
如果您还没有了解 Web 驱动程序的介绍,它会让您更接近 http://docs.seleniumhq.org/docs/03_webdriver.jsp
如果您具体询问,"What happens when I do WebElement.click()
?" 答案是,"It depends." 大多数浏览器驱动程序在调用 click()
时使用两种不同模式中的一种。如果您使用的是所谓的 "native events,",那么将使用适合您 运行 所在平台的 OS 级机制执行点击。另一方面,如果您使用 "simulated events,",则这些是 JavaScript 元素上的模拟点击。您还可以告诉大多数驱动程序,通常是通过 DesiredCapability
,您想要使用本机事件或合成事件。在特定情况下,您实际使用的是本机事件还是合成事件,这在很大程度上取决于浏览器和平台,因为浏览器和浏览器之间的默认设置不同,OS 到 OS。
如果您的问题更笼统,例如,"Does WebDriver use JavaScript for any of its functionality?" 答案几乎可以肯定,"Yes, drivers do rely on JavaScript for at least some functionality." 请注意,这意味着通过浏览器设置关闭 JavaScript 执行几乎可以肯定破坏您要自动化的任何浏览器的驱动程序。
貌似webdriver使用模拟事件请参考- https://w3c.github.io/webdriver/webdriver-spec.html#clicking