【问题标题】:Selenium c# Multiple OptionsSelenium c# 多个选项
【发布时间】:2018-04-08 11:30:45
【问题描述】:

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

System.InvalidOperationException 发生 HResult=0x80131509
消息=未知错误:未能等待扩展后台页面 加载: chrome-extension://jmhljmgnagblkombahigniilhnbadca/_generated_background_page.html 来自未知错误:找不到页面: chrome-extension://jmhljmgnagblkombahigniilhnbadca/_generated_background_page.html (驱动信息:chromedriver=2.33.506120 (e3e53437346286c0bc2d2dc9aa4915ba81d9023f),平台=Windows NT 10.0.15063 x86_64)来源=WebDriver StackTrace:在 OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(响应 错误响应)在 OpenQA.Selenium.Remote.RemoteWebDriver.Execute(字符串 driverCommandToExecute,Dictionary`2 参数)在 OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilities 所需能力)在 OpenQA.Selenium.Remote.RemoteWebDriver..ctor(ICommandExecutor commandExecutor,ICapabilities 期望能力)在 OpenQA.Selenium.Chrome.ChromeDriver..ctor(ChromeOptions 选项)在 SeleniumTest.Form1.c__DisplayClass5_0.b__0() 在 C:\Users\Ussagui\source\repos\SeleniumTest\SeleniumTest\Form1.cs:line 53 在 System.Threading.Tasks.Task.InnerInvoke() 在 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);

如果我只使用它的扩展名或参数。 我如何同时使用两者?还是我不能? 提前致谢。

【问题讨论】:

    标签: c# google-chrome selenium webdriver


    【解决方案1】:

    几点:

    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);
      

    【讨论】:

    • 谢谢老兄!我回家后会试一试。关于“var action = new Actions(driver);”我使用它是因为我得到了“按 Enter”,但我忘记发帖了,对不起!顺便说一句,“var option”和“ChromeOptions option”有什么区别(使用“var”或“ChromeOptions”)谢谢
    猜你喜欢
    • 2022-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-06
    • 1970-01-01
    • 2012-05-07
    • 2019-06-13
    • 1970-01-01
    相关资源
    最近更新 更多