0

首先让我说这是我在 stackoverflow 上的第一篇文章,所以请告诉我什么时候做错了。

我做了一个项目,我打开一个 Firefox,创建多个选项卡,然后在每个选项卡中访问不同的网站,从左到右开始。目前,每次完成一个选项卡中的工作时,它都会切换到下一个选项卡并开始在那里工作。但是,我的客户希望浏览器做的是它停留在打开的第一个选项卡上,以便他可以查看显示的结果,而 selenium 继续在后台的其他选项卡中工作。

我打开新标签

ArrayList<String> tabs = new ArrayList<String>(driver.getWindowHandles());
driver.switchTo().window(tabs.get((tabPosition)));

老实说,我什至不知道这是否可能。任何帮助表示赞赏。

4

2 回答 2

0

明确的答案是否定的

Selenium 需要关注对应的窗口/选项卡/框架才能处理该页面的元素并与之交互。

于 2017-05-12T12:52:34.453 回答
0

您的客户的意愿不正确。司机在后台工作。
在 Selenium 转到另一个选项卡后,您必须返回到您的第一个选项卡。为此添加到您的代码字符串:

String firstTab = driver.getWindowHandle();

在任何选项卡之后,始终将您的驱动程序切换到第一个选项卡:

for (String tab: driver.getWindowHandles()) {
    if (!tab.equals(firstTab)) {
        driver.switchTo().window(firstTab);
    }
}
于 2017-05-12T12:54:04.317 回答