2017-03-21 2 views
0

ChromeOptionsとDesiredCapabilitiesをSeleniumとC#の雰囲気で使用する方法に関する正しいドキュメントを探していますが、すべてソースが公開されているため、時には助けにならない)。私の質問は、ChromeOptionsとDesiredCapabilitiesの間の正しい関係を設定する方法です。私はすべてを正しくやっているように思えるが、それでも私のコードは以下の通りですSystem.InvalidOperationException: unknown error:cannot parse capability: chromeOptions from unknown error: unrecognized chrome option:Arguments取得:SeleniumとC#でのChromeOptionsとDesiredCapabilitiesの関係

private static ChromeOptions Ops() 
     { 
      var options = new ChromeOptions(); 
      options.AddArgument("--no-startup-window"); 
      options.BinaryLocation = @"C:\path\path\path\chromedriver.exe"; 
      return options; 
     } 
    private static DesiredCapabilities Caps() 
     { 
      DesiredCapabilities caps = new DesiredCapabilities(); 
      caps.SetCapability(CapabilityType.BrowserName, "chrome"); 
      caps.SetCapability(ChromeOptions.Capability,Ops().ToCapabilities()); 
      return caps; 
     } 
IWebDriver driver = new RemoteWebDriver(new Uri("http://localhost:4444/wd/hub"), Caps()); 

は間違った引数を渡している場所を見つけることができません。誰も同じ問題に直面していますか?これはChromeDriverバージョン2.28とSelenium WebDriver v 3.3.0です。Google Chromeブラウザのバージョンは52です。

+0

機能に変換するのではなく、caps.SetCapability(ChromeOptions.Capability、Ops()); –

+0

@マークラピエールそれはなかった。同じエラーメッセージが表示されます。 – President

答えて

0

ブラウザ名は設定する必要はありません。 ChromeOptionsはこれを行います。

this comment

による.NETバインディングはDesiredCapabilitesもRemoteWebDriverと、直接 を使用すべきではないパターンに向かって移動されます。それを容易にするために、ChromeOptionsクラス は()メソッド

をToCapabilitiesを持っており、あなたは--no-スタートアップを使用する場合this comment多く--disable-javascriptのような

、chromedriverは動作しませんがあります-窓。 AutomationProxyとの接続を確立するためにウィンドウを起動する必要があります。

だから、これまで私たちを取得します。ただし、実際にグリッドを実行している

var options = new ChromeOptions(); 
options.BinaryLocation = @"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"; 

IWebDriver driver = new RemoteWebDriver(new Uri("http://localhost:4444/wd/hub"), options.ToCapabilities()); 

? 1台のマシンでテストしている場合は、さらに簡単です。

IWebDriver driver = new ChromeDriver(); 
関連する問題