java Selenium WebDriver“单击”和JavascriptExecutor单击之间有什么区别
下面两条语句之间的执行过程差异
driver.findElement(By.xpath("//input[@value='Save']")).click();
((JavascriptExecutor) driver).executeScript("arguments[0].click();", element);
你可以在下面搜索框中键入要查询的问题!
下面两条语句之间的执行过程差异
driver.findElement(By.xpath("//input[@value='Save']")).click();
((JavascriptExecutor) driver).executeScript("arguments[0].click();", element);
# 1 楼答案
WebDriver
click()
模拟用户与UI的真实交互。(在大多数浏览器中)我将通过向浏览器发送一个本机事件来执行,它必须是可见的,才能单击它。来自docs另一方面{}{}
不管
WebElement
是否可见。这种方法忽略了用户交互Selenium
试图模拟的想法# 2 楼答案
简单地说。Webdriver使用原生浏览器事件来单击元素,javascript使用JavaScrip来单击元素
如果我没记错的话,Selenium 1的所有操作都使用JavaScript,但他们在webdriver(Selenium 2)中改变了这一点,现在他们使用本机浏览器事件与浏览器进行交互。因此,您需要浏览器(geckodriver、IEDriver、Chromedriver等)的相应支持。另一方面,JavaScript引擎内置于所有主流浏览器中,因此不需要额外的可执行文件