Open a new browser session in a different window in Selenium
I am new to S开发者_开发百科elenium and just started to use it. I want to open a new browser session in a different window from my script and do not know how to do it.
I tried using the open command and gave the Firefox Url but it opened in the same window.
Any ideas?
Try using openWindow instead of open. If you get a message that Firefox blocked a popup, allow popups. This will probably open a tab instead of a window, but maybe that will suit your needs.
@Test
public void Test01() throws Exception {
openTab("http://www.xyz.com");
}
This will open a different Firefox window. And then Handle to switch the new window.
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);
}
}
精彩评论