具有BinaryLocation的C#Google Chrome Selenium URL导航

时间:2018-08-16 16:59:46

标签: c# selenium selenium-chromedriver

Greetings StackOverflow社区,

我的问题很简单。我有以下五行代码,无法弄清楚为什么使用自定义二进制位置时Google Chrome无法启动 google.com

        var Chrome = new ChromeOptions();
        Chrome.AddArgument("no-sandbox");
        Chrome.BinaryLocation = @"C:\GoogleChrome\chrome.exe";
        ChromeDriver driver = new ChromeDriver(@"C:\ChromeDriver", Chrome);
        driver.Navigate().GoToUrl("https://www.google.com");

有什么想法吗?我得到的只是启动Chrome浏览器时的默认chromedriver URL“ 数据:”。

为什么使用Chrome.BinaryLocation时driver.navigate命令不起作用?如果我注释掉那条线,那将很好用。

我正在使用以下内容:

  • Windows 7
  • Visual Studio Community Edition 2017
  • Google Chrome 67版
  • chromedriver 2.41
  • .NET 4.5绑定

2 个答案:

答案 0 :(得分:0)

嘿,我不认为您需要二进制位置

也许Chrome已经是一种类型,

尝试一下:

ChromeOptions options = new ChromeOptions();
options.AddArgument("no-sandbox");
var driver = new ChromeDriver(@"C:\GoogleChrome", options);
driver.Navigate().GoToUrl("https://www.google.com");

答案 1 :(得分:0)

好的,我找到了这个问题的答案。我不知道为什么Firefox,Chrome或其他基于Chromium的浏览器的可移植版本无法通过这种方式运行,但是我通过将企业安装文件从Chrome的程序文件复制到计算机上的另一个目录,然后指向Selenium脚本以使用该二进制位置。然后就可以了。

将Chrome指向自定义Chrome配置文件位置也很有用,以防止更多的Chrome应用程序使用本地用户的AppData文件夹。

如果有人对完成相同的任务感兴趣,我可以提供一些示例代码来完成此任务。只是给我发消息以获取更多详细信息。