FirefoxおよびInternet Explorer 9用のSelenium 2 Webdriverテストケースをいくつか持っています。IE9(Windows 7 64ビット)でhttps URLにアクセスすると、「このWebサイトのセキュリティ証明書に問題があります」と表示されます。この時点で、テストはハングし、最終的に失敗します。私は試した:
最後に、私は自分のPCへの管理者アクセス権を持っていません。グループポリシーにアクセスできません。 Selenium 2 WebdriverはFirefoxで正常に動作します。 IEインターネットオプション)ですべてのセキュリティゾーンを有効にしており、他のURL(http)でテストを実行しても問題はありません。
誰かがこの問題の解決策を持っていますか?この問題を克服するためにbrowsermobプロキシ(またはその他のプロキシ)を効果的に使用することに熱心な人はいますか?
ありがとう、ダモ
私はSQAボードで答えを見つけました: https://sqa.stackexchange.com/questions/1928/Selenium-2-webdriver-and-ie-9-security-certificate
証明書を作成し、それは魅力のように働きました。
さて、C#と次のコードを使用してIE9で動作させました。
IWebDriver driver = new InternetExplorerDriver();
driver.Url(YOUR_URL);
driver.Navigate().GoToUrl("javascript:document.getElementById('overridelink').click()");
そして今、それは意図されたページに行きます。 Javaの場合、次のように簡単です。
WebDriver driver = new InternetExplorerDriver();
driver.get(YOUR_URL);
driver.get("javascript:document.getElementById('overridelink').click();");
Selenium-Pythonバインディングの使用:
#region SSL workaround for IE
if "Certificate Error" in driver.title:
driver.get("javascript:document.getElementById('overridelink').click();")
これは過去に私にとってはうまくいきました、試してみてください、
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
Webdriver driver = new InternetExplorerDriver(capabilities);
IEドライバ、これに記載されているドライバ reply を使用する場合は、はるかに簡単な解決策があります。追加の利点は、サイトの所有者である必要がなく、 browsermobやレジストリ、その他の低レベルのテクノロジーに煩わされる必要はありません
これに進展はありますか?私はこの機能を実行しようとしています...しかし、Ruby :(を使用してそれを実行する方法がわかりません
chromeでは、スイッチを使用できるので簡単です:
nav=Selenium::WebDriver.for(:chrome, :switches => %w[--ignore-certificate-errors -])
多分それはIEのためにスイッチを使用してそれを行うことが可能です
次のコードを使用できます。
wait =new WebDriverWait(webdriver, 10);
webdriver.get(url);
WebElement ele =wait.until(ExpectedConditions.elementToBeClickable(
webdriver.findElement(By.linkText("Continue to this website (not
recommended)."))));
ele.click();
他の答えは正しい考えですが、WebDriver
が証明書エラーページにすぐに移動しないため、実際には失敗します。正しい実装は少し待つ必要があります。
new WebDriverWait(driver, 10).until(ExpectedConditions.titleContains("Certificate"));
driver.navigate().to("javascript:document.getElementById('overridelink').click()");