我有一个场景,比如当我点击它在新标签页中打开的链接时。使用Selenium WebDriver我们如何处理它。
据我所知,我们无法切换到新标签但是当我在网上搜索时,得到了一些以下的解决方案。
ArrayList<String> tabs2 = new ArrayList<String> (driver.getWindowHandles());
driver.switchTo().window(tabs2.get(1));
driver.close();
driver.switchTo().window(tabs2.get(0));
不幸的是,每个给定的解决方案都包含driver.getWindowhandles()。但是AFAIK即使浏览器有多个标签,它总是只返回一个句柄。
我的方案是,当我点击一个按钮时,它会在新标签中打开。可以请任何人提供一些解决方案
答案 0 :(得分:1)
当您的新标签页打开后,您将进入窗口的任何特定标签页。现在,您可以使用keys.chord(keys.ctrl,keys.tab)
在标签页之间切换。通过使用keys
,我们可以使用键盘i / p。
答案 1 :(得分:0)
根据窗口标题编写一个方法将驱动程序的句柄切换到新窗口/选项卡:
public void SwitchHandleToNewWindow(IWebdriver driver, string windowTitle)
{
ReadOnlyCollection<string> handles = driver.WindowHandles;
foreach(string handle in handles)
{
driver.SwitchTo().Window(handle);
if(driver.Title.Contains(windowTitle))
{
return;
}
}
}
代码很简单,因此实现也很简单。如果要切换到新选项卡,则执行以下操作:SwitchHandleToNewWindow(驱动程序,“测试页”)