我可以告诉 selenium 在选项卡中操作而不切换到它们吗?
Can I tell selenium to operate in tabs without switching to them?
首先让我说这是我第一次post Whosebug,所以当我做错了什么时请告诉我。
我做了一个项目,我打开一个 firefox,创建多个选项卡,然后在每个选项卡中转到不同的网站,从左到右开始。目前,每次完成一个选项卡中的工作时,它都会切换到下一个选项卡并开始在那里工作。但是,我的客户希望浏览器做的是它停留在打开的第一个选项卡上,以便他可以查看显示的结果,而 selenium 在后台继续在其他选项卡中工作。
我用
打开新标签页
ArrayList<String> tabs = new ArrayList<String>(driver.getWindowHandles());
driver.switchTo().window(tabs.get((tabPosition)));
老实说,我什至不知道这是否可能。感谢任何帮助。
明确的答案是否定的
Selenium 需要关注通信者 window/tab/frame 才能处理该页面的元素并与之交互。
您客户的意愿不正确。 Driver 在后台工作。
在 Selenium 转到另一个选项卡后,您必须 return 到第一个选项卡。为此添加到您的代码字符串:
String firstTab = driver.getWindowHandle();
在任何选项卡之后总是将 driver 切换到第一个选项卡:
for (String tab: driver.getWindowHandles()) {
if (!tab.equals(firstTab)) {
driver.switchTo().window(firstTab);
}
}
首先让我说这是我第一次post Whosebug,所以当我做错了什么时请告诉我。
我做了一个项目,我打开一个 firefox,创建多个选项卡,然后在每个选项卡中转到不同的网站,从左到右开始。目前,每次完成一个选项卡中的工作时,它都会切换到下一个选项卡并开始在那里工作。但是,我的客户希望浏览器做的是它停留在打开的第一个选项卡上,以便他可以查看显示的结果,而 selenium 在后台继续在其他选项卡中工作。
我用
打开新标签页ArrayList<String> tabs = new ArrayList<String>(driver.getWindowHandles());
driver.switchTo().window(tabs.get((tabPosition)));
老实说,我什至不知道这是否可能。感谢任何帮助。
明确的答案是否定的
Selenium 需要关注通信者 window/tab/frame 才能处理该页面的元素并与之交互。
您客户的意愿不正确。 Driver 在后台工作。
在 Selenium 转到另一个选项卡后,您必须 return 到第一个选项卡。为此添加到您的代码字符串:
String firstTab = driver.getWindowHandle();
在任何选项卡之后总是将 driver 切换到第一个选项卡:
for (String tab: driver.getWindowHandles()) {
if (!tab.equals(firstTab)) {
driver.switchTo().window(firstTab);
}
}