7

VS 2010 C# で Selenium Web Driver を使用して Chrome ブラウザーを開き、Web ページに移動してからドライバーを閉じますが、ブラウザーを開いたままにします。その後、ブラウザを手動で閉じる必要があることを認識していますが、それで問題ありません。

これまでのところ、私は持っています:

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

何か案は?

4

4 に答える 4

2

「detach」オプションを使用して、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();
于 2016-01-12T07:46:20.453 に答える
0

これはまったく不可能です。そのような分離は存在しません。

于 2013-02-01T12:05:36.007 に答える
0

chromeservice.driver.close()

過去に私のために働いていましたが、この場合、メソッドのコーディングを書く必要があるかもしれません.

于 2014-08-27T11:19:22.330 に答える
0

少なくとも c# では、次の行が必要になる可能性があります。

driverOptions.AddExcludedArgument("enable-automation");
driverOptions.AddAdditionalCapability("useAutomationExtension", false);
于 2021-08-23T22:09:41.860 に答える