在Selenium的另一个窗口中打开一个新的浏览器会话

时间:2010-01-12 16:47:50

标签: selenium-ide

我是Selenium的新手,刚刚开始使用它。我想在与脚本不同的窗口中打开一个新的浏览器会话,但不知道该怎么做。

我尝试使用open命令并提供了Firefox Url,但它在同一窗口中打开。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

尝试使用openWindow而不是open。如果您收到Firefox阻止弹出窗口的消息,请允许弹出窗口。这可能会打开一个标签而不是一个窗口,但也许这将符合您的需求。

答案 1 :(得分:0)

@Test
public void Test01() throws Exception {
openTab("http://www.xyz.com");
}

这将打开一个不同的Firefox窗口。然后Handle切换新窗口。

public void trigger(String script, WebElement element) {
((JavascriptExecutor) driver).executeScript(script, element);
}

public Object trigger(String script) {
return ((JavascriptExecutor) driver).executeScript(script);
}

public void openTab(String url) {
String script = "var d=document,a=d.createElement('a');a.target='_blank';a.href='%s';a.innerHTML='.';d.body.appendChild(a);return a";
Object element = trigger(String.format(script, url));
if (element instanceof WebElement) {
WebElement anchor = (WebElement) element;
anchor.click();
trigger("var a=arguments[0];a.parentNode.removeChild(a);", anchor);
} else {
throw new JavaScriptException(element, "Unable to open Window", 1);
}
}