我有一些针对Firefox和Internet Explorer 9的Selenium 2 Webdriver测试用例。当我在IE9(Windows 7 64位)上访问https URL时,我得到“此网站的安全证书存在问题”。此时测试挂起并最终失败。我试过了:
最后,我没有管理员访问我的电脑 - 例如无法访问组策略。 Selenium 2 Webdriver在Firefox上运行良好。我在IE Internet Options中启用了所有安全区域,如果我在其他URL(http)上运行测试,则没有问题。
有没有人能解决这个问题?现在是否有人有效地使用browsermob代理(或任何其他代理)来克服这个问题?
谢谢, 达莫
答案 0 :(得分:26)
好吧,我只是使用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();");
答案 1 :(得分:4)
使用Selenium-Python绑定:
#region SSL workaround for IE
if "Certificate Error" in driver.title:
driver.get("javascript:document.getElementById('overridelink').click();")
答案 2 :(得分:3)
我在SQA板上找到了答案: https://sqa.stackexchange.com/questions/1928/selenium-2-webdriver-and-ie-9-security-certificate
我们创建了一个证书,它就像一个魅力。
答案 3 :(得分:2)
这在过去对我有用,试一试,
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
Webdriver driver = new InternetExplorerDriver(capabilities);
答案 4 :(得分:0)
这方面的任何进展? 我正在尝试做这个功能......但我不知道如何使用Ruby做到这一点:(
在Chrome中,它很简单,因为你可以使用开关:
nav=Selenium::WebDriver.for(:chrome, :switches => %w[--ignore-certificate-errors -])
也许可以使用开关
为IE做这件事答案 5 :(得分:0)
如果你使用IE驱动程序,有一个更简单的解决方案,在reply中有记录。额外的好处是您不必是网站所有者,您不必与浏览器或注册表或任何其他低级技术纠缠在一起
答案 6 :(得分:0)
我们可以使用以下代码。
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();
答案 7 :(得分:0)
其他答案有正确的想法,但在实践中失败,因为new WebDriverWait(driver, 10).until(ExpectedConditions.titleContains("Certificate"));
driver.navigate().to("javascript:document.getElementById('overridelink').click()");
没有立即导航到证书错误页面。正确的实现应该稍等一下。
{{1}}