Select all text in element in Internet Explorer 11 with Selenium WebDriver

一世执手 提交于 2019-12-11 14:02:27

问题


Selecting all text in an element with Selenium WebDriver normally works like this.

WebElement element = driver.findElement(By.id("foo"));
element.click();
element.sendKeys(Keys.chord(Keys.CONTROL, "a"));

For internet explorer 11 I set these capabilities.

capability = DesiredCapabilities.internetExplorer();
capability.setCapability("nativeEvents", false);
capability.setCapability("enablePersistentHover", false);
capability.setCapability("ignoreZoomSetting", true);

Selecting all text then, does not work. I use Selenium WebDriver 2.48.2 and IEdriverServer 2.48.0.

My quick and dirty solution is to use a robot in the WebDriverEventListener.

Robot r = null;
try {
    r = new Robot();
} catch (AWTException e) {
    e.printStackTrace();
}
...
@Override
public void beforeChangeValueOf(WebElement element, WebDriver driver) {
    r.setAutoDelay(30);
    r.keyPress(KeyEvent.VK_CONTROL);
    r.keyPress(KeyEvent.VK_A);
}
...
@Override
public void afterChangeValueOf(WebElement element, WebDriver driver) {
    r.keyRelease(KeyEvent.VK_A);
    r.keyRelease(KeyEvent.VK_CONTROL);
}

This works. But who knows a cleaner, less contrived solution?

来源:https://stackoverflow.com/questions/34198934/select-all-text-in-element-in-internet-explorer-11-with-selenium-webdriver

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!