当我driver.findElementById("some id").click()
时,内部会发生什么?它执行一个JavaScript吗?我想了解点击的工作原理?它是执行java脚本还是做一些API调用?
答案 0 :(得分:1)
如果您特别询问,"当我WebElement.click()
时会发生什么?"答案是,"它取决于。"调用click()
时,大多数浏览器驱动程序使用两种不同模式中的一种。如果你正在使用所谓的"原生事件,"然后使用适合您正在运行的平台的操作系统级机制执行单击。另一方面,如果您正在使用"模拟事件,"这些是对元素的JavaScript模拟点击。您还可以通常通过DesiredCapability
告诉大多数驱动程序要使用本机或合成事件。您是否在特定情况下实际使用本机或合成事件在很大程度上取决于浏览器和平台,因为默认设置因浏览器和操作系统与操作系统而异。
如果您的问题更通用,例如," WebDriver是否将JavaScript用于其任何功能?"答案几乎可以肯定,"是的,驱动程序至少在某些功能上依赖JavaScript。"请注意,这意味着通过浏览器关闭JavaScript执行设置几乎肯定会破坏您尝试自动化的任何浏览器的驱动程序。
答案 1 :(得分:0)
早期版本的selenium,Selenium RC,用于在浏览器加载页面时注入javascript函数,并使用此方法定位所有浏览器。
随着Selenium WebDriver的推出,selenium使用浏览器内置的自动化支持,这取决于浏览器。因此,Firefox的Firefox插件,IE的.dll,Chromium维护ChromeDriver用于Chrome自动化。所以原生支持与旧的JavaScript方法相比。
如果您尚未涵盖Web驱动程序的介绍将使您更加接近 http://docs.seleniumhq.org/docs/03_webdriver.jsp
答案 2 :(得分:0)
看起来网络驱动程序使用模拟事件请参阅 - https://w3c.github.io/webdriver/webdriver-spec.html#clicking