我是自动化测试的初学者。我已经安装了Eclipse作为执行自动化任务的IDE,我使用的语言是Java。我的网络应用程序中有一个模块,我需要快速双击网页元素。第一次和第二次点击之间的时差应小于半秒。
我写了以下代码:
Actions actions = new Actions(driver);
actions.doubleClick(driver.findElement(By.xpath("//div[contains(text(), 'Sonam')]"))).doubleClick().build().perform();
我做错了什么?
答案 0 :(得分:0)
您应该首先将鼠标移动到元素。
试试这个
Actions action = new Actions(driver);
action.moveToElement(driver.findElement(By.xpath("//div[contains(text(), 'Sonam')]"))).doubleClick().perform();
或只是:
action.doubleClick(driver.findElement(By.xpath("//div[contains(text(), 'Sonam')]"))).perform();
答案 1 :(得分:0)
使用Actions类,您可以在元素上执行DoubleClick。
你走了:
Actions action = new Actions(driver);
action.doubleClick(driver.findElement(By.xpath("//div[contains(text(), 'Sonam')]"))).build().perform();
OR
您可以使用JavaScriptExecutor使用Javascript进行双击,如下所示:
String jsCodeToDblClick = "var targElement=arguments[0]; var clEvent=document.createEvent('MouseEvents'); clEvent.initEvent('dblclick', true, true');targElement.dispatchEvent (clEvent);";
((JavascriptExecutor)driver).executeAsyncScript(jsCodeToDblClick ,driver.findElement(By.xpath("//div[contains(text(), 'Sonam')]")));
这有效!!!
答案 2 :(得分:0)
您可以尝试以下操作: -
WebElement ele1 = driver.findElement(By.xpath("//div[contains(text(), 'Sonam')]")));
Actions actions = new Actions(driver);
actions.doubleClick(ele1).build().perform();