我尝试双击要选择文本的文本框.....代码看起来像
WebDriver driver=new FirefoxDriver();
driver.manage().window().maximize();
driver.get("https://www.facebook.com/");
WebElement txtBoxElement=driver.findElement(By.xpath("//*[@id='email']"));
txtBoxElement.sendKeys("abc");
System.out.println("Test start");
Actions builder=new Actions(driver);
Action a=builder.moveToElement(txtBoxElement).doubleClick(txtBoxElement).build();
a.perform();
//This is for another way to double click on the text field
Locatable locatable = (Locatable) driver.findElement(By.name("email"));
Mouse mouse = ((HasInputDevices) driver).getMouse();
mouse.mouseMove(locatable.getCoordinates());
mouse.doubleClick(locatable.getCoordinates());
System.out.println("Test Complete");
}
但这两种方式都无效我使用此
绕过了这个问题 Action a=builder.moveToElement(txtBoxElement).sendKeys(txtBoxElement,Keys.chord(Keys.CONTROL,"a")).build();
a.perform();
我的问题是为什么双击不起作用? 我也尝试这个谷歌搜索文本框它也没有工作。 在这里,我想提一下我使用Selenium 2.37和firefox 26。
我没有得到任何错误,但没有双击这个元素。我还观察到,如果我注释掉 txtBoxElement.sendKeys(“abc”); 部分,然后使用Actions事件发送密码,它在浏览器地址栏上写下文字。
答案 0 :(得分:1)
我相信双击元素时你必须看到以下错误:
Cannot perform native interaction: Could not load native events component.
最新版本的Firefox与Selenium WebDriver的最新版本一直存在问题(有关详细信息,请参阅link)。
您可以通过将Firefox从26降级到25来解决此问题。使用Firefox 25,您的代码将起作用。
答案 1 :(得分:0)
双击可能是您的Action语句不正确。我用这样的简单语句双击了一下:
Actions a = new Actions(driver);<br>
a.doubleClick(txtBoxElement);<br>
a.perform();
答案 2 :(得分:0)
如果您尝试选择文本框中的所有文本,请尝试:
WaitUntil.elementReady(driver, 2,".//span[@class='scale-input-box']/input").sendKeys(Keys.CONTROL + "a");
解决Selenium try Alternative workaround Source
中双击的问题简化为:
((JavascriptExecutor) driver).executeScript("document.getElementById('map_container').dispatchEvent(new Event('dblclick'));");