当前位置: 首页 > 知识库问答 >
问题:

如何将Chrome浏览器与Chrome驱动程序分离(Selenium Web驱动程序C#)

丌官开宇
2023-03-14

我想在VS 2010 C#中使用Selenium Web驱动程序打开Chrome浏览器,导航到某个网页,然后关闭驱动程序,但保持浏览器打开。我意识到,我将不得不手动关闭浏览器后,我同意这一点。

到目前为止我有:

DriverService service = ChromeDriverService.CreateDefaultService();
ChromeOptions options = new ChromeOptions();
options.AddAdditionalCapability("chrome.detach",true);
m_driver = new ChromeDriver(service, options, TimeSpan.FromMilliseconds(1000));
[m_driver does stuff like navigate page, double click stuff, etc]
[last line: try to close driver but not browser]

我已经尝试了以下所有作为最后一行

m_driver.Dispose(); // closes both browser and driver

m_driver.Close(); //closes just the browser and not the driver

m_driver.Quit(); // closes both browser and driver

service.Dispose(); // closes both browser and driver

有什么想法吗?

共有3个答案

谷梁淇
2023-03-14

色度服务。驾驶员关闭()

在过去为我工作,但在这种情况下,您可能需要为方法编写一些代码。

澹台锐
2023-03-14

这根本是不可能的,那种分离是不存在的。

鲍国兴
2023-03-14

我们可以使用“分离”选项从chromedriver分离chrome实例。

示例代码

ChromeDriverService cdservice = new ChromeDriverService.Builder()
                .usingDriverExecutable(new File("/path/to/chromedriver.exe"))
                .withLogFile(new File("/path/to/chromedriver.log"))
                .usingAnyFreePort().withVerbose(true).build();
cdservice.start();
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("detach", true);
ChromeDriver driver = new ChromeDriver(cdservice,options);
driver.manage().timeouts().implicitlyWait(1, TimeUnit.MINUTES);
driver.get("http://www.google.com/");

// Do not call driver.quit().. instead stop chromedriver service.
cdservice.stop();
 类似资料:
  • 上面说 ChromeDriver是一个实现W3C WebDriver标准的独立服务器 看起来W3C WebDriver标准只定义了自动化程序和Chromedriver之间的接口。Chromedriver充当HTTP服务器,从自动化程序获取命令。 但是ChromeDriver如何与Chrome通信呢? 还是通过HTTP协议? 如果是,我们在哪里可以得到关于细节的留档?Chrome内部的哪个组件负责处

  • 问题内容: 我正在尝试运行一个ruby文件,该文件将使用seleniumwebdriver启动chrome驱动程序。我有selenium独立服务器2.35.0。和chromedriver可执行文件已安装。我正在通过运行服务器来启动 两个会话正在启动,chrome驱动程序无法启动。 这是在我使用以下文件运行文件之后 我对此并不陌生,无法找出问题所在。而且,我也试图让它无头运行,所以我正在运行Xvfb

  • 我试图运行一个ruby文件,这将启动chrome驱动程序使用selenium WebDriver。我有selenium独立服务器2.35.0。和chromedriver可执行文件安装。我通过运行来启动服务器, 这是在我使用 我对此很陌生,不知道哪里出了问题。我也试图无头运行它,所以我有Xvfb运行。有人能帮我指出我犯的错误并启动chromedriver吗? 更新: 谁能帮我弄清楚出了什么问题吗?

  • 当我尝试用Selenium 3.14、3.13或3.12启动WebDriver时,我得到 “org.openqa.selenium.remote.UnreachableBrowserException:无法启动新会话。可能的原因是远程服务器的地址无效或浏览器启动失败。”错误。 我可以用旧的Selenium版本运行测试而没有错误。我已经设置了环境变量(例如webdriver.chrome.drive

  • 问题内容: 今天,自动安装了最新版本的chrome浏览器,该版本现在为54.0.2840.71 m(64位)。我无法使用最新版本的Chrome驱动程序2.24和任何版本的Selenium来驱动浏览器。帮我解决这个问题..? 问题答案: 嗨,我已经解决了这个问题。Chrome 54或更低版本与Chrome驱动程序2.24兼容,而54或更高版本的Chrome需要Chrome驱动程序2.27。

  • 我正在使用ChromeDriver V2.24,我的系统中有Chrome Browser52(未安装,可执行文件)。 NosuchSessionException:没有这样的会话 控制台: 注意:在Windows安全更新之前,当我使用ChromeDriver3.1和Chrome58时,我的脚本运行良好。更新后,我无法启动Chrome浏览器,因为它不是启动浏览器,而是在后台运行。