这是我写的代码,以打开已经在Chrome中打开的新标签,但它仅将其重定向到现有选项卡中的第二个URL。
我想打开一个新的选项卡并加载'www.mailinator.com'
的URLSystem.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/");
有人可以帮助我吗?
您可以使用JavaScript
打开新选项卡public void openNewTab() {
((JavascriptExecutor)driver).executeScript("window.open('about:blank','_blank');");
}
如果要在新标签中执行操作,则可以使用:
driver.switchTo().window();
此方法接受字符串作为参数。窗口句柄确切
您可以得到这样的所有手柄
driver.getWindowHandles().
这将返回当前浏览器中的所有手柄。
为了切换到新创建的选项卡,请迭代手柄并使用switchTo()
方法:
Set<String> handles = driver.getWindowHandles();
String currentWindowHandle = driver.getWindowHandle();
for (String handle : handles) {
if (!currentWindowHandle.equals(handle)) {
driver.switchTo().window(handle);
}
}
警告:如果您有2个以上的选项卡,这可能很棘手。
使用 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