Selenium c#多种选择

时间:2017-10-26 23:17:55

标签: c# google-chrome selenium webdriver

我正在尝试使用Chrome作为驱动程序在我的selenium项目中使用多个选项,但是当我尝试添加无头+扩展时出现错误

  

发生System.InvalidOperationException HResult = 0x80131509
  消息=未知错误:无法等待扩展背景页面   加载:   镀铬的扩展://jmphljmgnagblkombahigniilhnbadca/_generated_background_page.html   来自未知错误:找不到页面:   镀铬的扩展://jmphljmgnagblkombahigniilhnbadca/_generated_background_page.html   (司机信息:chromedriver = 2.33.506120   (e3e53437346286c0bc2d2dc9aa4915ba81d9023f),platform = Windows NT   10.0.15063 x86_64)Source = WebDriver StackTrace:在OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response   errorResponse)at   OpenQA.Selenium.Remote.RemoteWebDriver.Execute(字符串   driverCommandToExecute,Dictionary`2参数)at   OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilities   desiredCapabilities)   OpenQA.Selenium.Remote.RemoteWebDriver..ctor(ICommandExecutor   commandExecutor,ICapabilities desiredCapabilities)at   OpenQA.Selenium.Chrome.ChromeDriver..ctor(ChromeOptions选项)at   SeleniumTest.Form1。<> c__DisplayClass5_0.b__0()in   C:\用户\ Ussagui \源\回购\ SeleniumTest \ SeleniumTest \ Form1.cs中:线   53在System.Threading.Tasks.Task.InnerInvoke()at   System.Threading.Tasks.Task.Execute()

我的代码是:

var option = new ChromeOptions();

            option.AddArguments("--headless --disable-gpu");
            option.AddExtensions(@"EXTENSION PATH");

            var driver = new ChromeDriver(option);
            var action = new Actions(driver);

            driver.Navigate().GoToUrl(URL);

如果我只使用其工作的扩展名或参数。 我怎么能同时使用?或者我不能? 提前谢谢。

1 个答案:

答案 0 :(得分:0)

几点:

  1. 虽然参数--headless--disable-gpu是相互关联的,但用于单独的任务。因此,我们需要单独指定它们。

  2. 使用最佳代码块并注释/删除调试/未使用的代码。由于driver.Navigate().GoToUrl(URL);不需要WebDriver个实例进行投放,因此我们需要发表评论/删除var action = new Actions(driver);

  3. 您的最终代码块如下所示:

    var option = new ChromeOptions();
    option.AddArguments("--headless");
    option.AddArguments("--disable-gpu");
    option.AddExtensions(@"EXTENSION PATH");
    var driver = new ChromeDriver(option);
    driver.Navigate().GoToUrl(URL);