这是我为打开已在Chrome中打开的新标签而编写的代码,但它仅重定向到现有标签中的第二个网址。
我想打开一个新标签并加载“www.mailinator.com”的网址
System.setProperty("webdriver.chrome.driver","D:\\Vijayalaxmi Testing\\BrowserDrivers\\ChromeDriver\\chromedriver.exe" );
obj=new ChromeDriver();
String baseUrl="https://www.google.co.in/";
obj.get(baseUrl);
obj.findElement(By.tagName("body")).sendKeys(Keys.CONTROL+"t");
obj.get("https://www.mailinator.com/");
任何人都能帮助我吗?
答案 0 :(得分:0)
使用driver.switchTo().window(tabs.get(1));
打开新标签
obj=new ChromeDriver();
String baseUrl="https://www.google.co.in/";
obj.get(baseUrl);
obj.findElement(By.tagName("body")).sendKeys(Keys.CONTROL+"t");
ArrayList<String> tabs = new ArrayList<String> (obj.getWindowHandles());
driver.switchTo().window(tabs.get(1)); //switches to new tab
obj.get("https://www.mailinator.com/");
driver.switchTo().window(tabs.get(0)); // switch back to old
答案 1 :(得分:0)
您可以使用javascript
打开新标签页public void openNewTab() {
((JavascriptExecutor)driver).executeScript("window.open('about:blank','_blank');");
}
如果您想在新标签中执行操作,可以使用:
driver.switchTo().window();
此方法接受String作为参数。窗口句柄准确
你可以获得这样的所有句柄
driver.getWindowHandles().
这将返回当前浏览器中的一组所有句柄。
要切换到新创建的标签,请遍历句柄并使用switchTo()
方法,如下所示:
Set<String> handles = driver.getWindowHandles();
String currentWindowHandle = driver.getWindowHandle();
for (String handle : handles) {
if (!currentWindowHandle.equals(handle)) {
driver.switchTo().window(handle);
}
}
警告:如果您有两个以上的标签,这可能会很棘手。