如何打开新的选项卡,在更新删除发送快捷键后,在chrome上使用硒的硒打开选项卡和关闭选项卡



在chrome上切换选项卡的两个部分(也可能是其他驱动程序)。您首先必须切换驾驶员正在处理的上下文,就我而言,我还必须更改视图,以便将某个选项卡的焦点集中到。

您用来仅发送短切键(Ctrl Tab,Ctrl T等)来管理切换视图,但是最近更改了。

在为此引起我的头痛之后,并没有真正找到任何解决此问题的好答案,我想出了一些工作。

open

您可以通过使用驱动程序将快捷方式发送到页面上的键来在Chrome上创建选项卡。但是,似乎不再起作用了。通过使用一些JavaScript:

,以替代方式打开标签实际上很容易
((JavascriptExecutor)webdriver).executeScript("window.open();");

然后,您必须将上下文切换到您刚打开的新窗口。您可以使用webdriver.switchto()方法(有关此的大量文档)

来执行此操作。

切换

我面临的另一个挑战是在Chrome更新使您不可能仅使用快捷方式后切换选项卡。我最初尝试使用JavaScript给窗口一个名称:

window.name = 'foo'

,然后在其他选项卡上可以做:

window.open('', 'foo') 

它将正确切换选项卡。但是,当您通过控制台发送它时,问题将正常工作,但是无论出于何种原因,它在通过Javascriptexecutor发送时都无法使用。

我发现了一项工作。这有点骇人听闻,但是到目前为止,我还没有看到另一种选择。首先,您想将上下文切换到使用窗口手柄时想要的任何选项卡(同样有很多其他帖子说明了如何做到这一点,因此我不会详细介绍如何获得正确的手柄)这样做:

webdriver.switchTo().window(windowHandle);

这使得现在WebDriver在该选项卡上下文上。然后,要实际切换视图,以便它与您必须执行一些黑客攻击的上下文同步。您要做的是在要切换视图的上下文上打开警报,然后关闭警报。这种情况发生得很快,因此您甚至不会看到警报打开。

((JavascriptExecutor) webdriver()).executeScript("window.alert('Horrible hack to switch tabs')");
webDriver().switchTo().alert().accept();

关闭

关闭实际上非常容易。您要做的就是:

webdriver.close();

最新更新