首先,我要说的是,这是我在stackoverflow上的第一篇文章,所以请告诉我什么时候做错了什么。
我做了一个项目,我打开一个火狐,创建多个标签,然后从左到右转到每个标签中的不同网站。目前,每次完成一个选项卡中的工作时,它都会切换到下一个选项卡并开始在那里工作。但是,我的客户希望浏览器做的是它停留在打开的第一个选项卡上,以便他可以查看显示的结果,而 Selenium 继续在后台的其他选项卡中工作。
我打开新标签
ArrayList<String> tabs = new ArrayList<String>(driver.getWindowHandles());
driver.switchTo().window(tabs.get((tabPosition)));
老实说,我什至不知道这是否可能。任何帮助,不胜感激。
明确的答案是否定的
Selenium需要将焦点聚焦到相应的窗口/选项卡/框架上,以处理该页面的元素并与之交互。
您客户的愿望不正确。驱动程序在后台工作。
您必须在硒转到其他选项卡后返回第一个选项卡。为此,请添加到代码字符串中:
String firstTab = driver.getWindowHandle();
在任何选项卡之后,始终将驱动程序切换到第一个选项卡:
for (String tab: driver.getWindowHandles()) {
if (!tab.equals(firstTab)) {
driver.switchTo().window(firstTab);
}
}