鼠标双击不能使用Selenium WebDriver在文本框中工作

时间:2013-12-25 16:55:08

标签: selenium selenium-webdriver

我尝试双击要选择文本的文本框.....代码看起来像

    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事件发送密码,它在浏览器地址栏上写下文字。

3 个答案:

答案 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'));");