IE9上的Selenium JavascriptExecutor导致'元素未滚动到视口'错误

Jes*_*ess 2 javascript selenium viewport internet-explorer-9

我正在尝试使用JavascriptExecutor从selenium webdriver在IE9中打开一个新选项卡:

public void openTab() {
    String url = webDriver.getCurrentUrl();
    String script = "var     a=document.createElement('a');a.target='_blank';a.href='" + url + "';a.innerHTML='open';document.body.appendChild(a);return a";
    Object element = getJSExecutor().executeScript(script);
    if (element instanceof WebElement) {
        WebElement anchor = (WebElement) element;
        anchor.click();
    } else {
        throw new RuntimeException("Unable to open tab: " + url);
    }
}
Run Code Online (Sandbox Code Playgroud)

这在Chrome中工作正常,但在IE9中运行时,我收到以下错误:

ElementNotVisibleException:驱动程序尝试单击元素的点未滚动到视口中.

我正在使用selenium和IEDriverServer的2.31版本.

小智 6

我在IE9中的并行VM中遇到了这个困难.这两条线使整个事情发挥作用......

Actions builder = new Actions(webDriver);
builder.moveToElement(element).click(element).perform();
Run Code Online (Sandbox Code Playgroud)

将元素滚动到视图中然后单击它.