我如何连接到使用c# Selenium在Chrome会话期间打开的新窗口?



我在c# Visual Studio中使用Selenium。

我可以打开一个Chrome浏览器会话没有问题。但是,当在该浏览器中与网页交互时,我必须单击打开新窗口的链接。

我必须能够连接到新打开的浏览器窗口并与之交互。

是否有一种方法可以识别所有打开的chrome会话,然后连接到通过点击网页链接打开的浏览器?

仅供参考,我不能简单地定位通过点击链接打开的网页链接,因为当点击链接时运行的JavaScript控制出现在新浏览器网页中的数据。

如果我只是在现有浏览器的新选项卡中打开链接,页面是空的,所以我必须能够与新打开的浏览器进行交互。

如果额外的浏览器选项卡或窗口作为驱动程序执行的一部分被打开,则驱动程序保留driver.WindowHandles集合中的这些句柄。

最新的应该是集合中的最后一个。

您可以使用driver.SwitchTo().Window()方法交换选项卡或窗口的控制权,该方法提供从集合到它的句柄名称。

把这些放在一起可能是:

string newWindow = driver.WindowHandles.LastOrDefault();
driver.SwitchTo().Window(newWindow);

最新更新