2016-12-16 100 views
0

如何使用C#中的Selenium网络驱动程序在地址栏中找到具有特定URL的现有打开Chrome窗口并在该窗口中打开新选项卡?我看到的所有示例都显示了如何在Selenium ChromeDriver中打开的窗口中打开新选项卡。使用Selenium Chrome驱动程序打开所有Chrome窗口

IWebDriver driver = null;  
    var chromeDriverService = ChromeDriverService.CreateDefaultService(); 

     chromeDriverService.HideCommandPromptWindow = true; 
     driver = new ChromeDriver(chromeDriverService); 
    List<string> tabs = new List<string>(driver.WindowHandles); 

driver.WindowHandles总是返回由ChromeDriver打开的窗口。但是,我正在寻找所有的窗户。只要实例化ChromeDriver的行被执行,就会打开一个新窗口。但是,我需要在现有窗口的新选项卡中打开新的URL。

回答

5

WebDriver无法控制未打开的浏览器窗口。这部分是用于防止基于WebDriver的恶意软件的安全措施。此外,为了与浏览器实例进行通信,浏览器必须在端口上监听传入的驱动程序命令。除非WebDriver启动浏览器,否则浏览器无法知道在该端口上侦听。

相关问题