无法使用firefox安全警告识别selenium中的元素

时间:2017-08-26 07:17:53

标签: javascript selenium selenium-webdriver

由于Firefox安全消息,我在Firefox浏览器中遇到.click()方法问题。

在我的登录表单中,我有一个用户名和密码字段和提交按钮。在Firefox中成功输入用户名后,浏览器会显示安全消息:

  

“此连接不安全。此处输入的登录可能是   妥协。了解更多“

而不是选择(点击)密码字段,它点击此安全消息,新的Firefox浏览器选项卡打开而不是输入密码值。 我该如何处理这种情况?

我有Firefox版本55和Selenium版本3.5.2

3 个答案:

答案 0 :(得分:0)

似乎您需要设置禁用该安全消息的功能

DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
driver = new FirefoxDriver(capabilities);

答案 1 :(得分:0)

您必须使用DesiredCapabilities类来设置启用 SSL证书的功能,然后您可以轻松找到您的元素。请找到以下代码:

DesiredCapabilities ffCapablity = new DesiredCapabilities();
ffCapablity.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
System.setProperty("webdriver.gecko.driver","E://FF//geckodriver.exe");
WebDriver driver = new InternetExplorerDriver(ffCapablity);

解决此问题的第二种方法,那么你必须参考以下链接:

How to Solve SSL ERROR

答案 2 :(得分:0)

如果您使用的网址为Not Secure,那么每当您尝试通过Mozilla Firefox 55.x访问该网址时,Firefox都会在地址栏中显示一个带有红色透视图标的锁定图标。现在,当加载URL时,默认情况下,光标将位于“用户名”字段上,弹出窗口会显示This connection is not secure. Logins entered here could be compromised消息documented here

在这些情况下,最佳解决方案是:

  1. 创建新的Mozilla Firefox配置文件。你会找到documentation here。例如,我创建了一个名为debanjan
  2. 的Firefox配置文件
  3. 配置Firefox个人资料debanjan以忽略所有UntrustedCertificate个问题。
  4. 毫无问题地重新运行您的测试脚本。
  5. 以下是禁用insecure_field_warning的示例代码块:

    System.setProperty("webdriver.gecko.driver", "C:\\Utility\\BrowserDrivers\\geckodriver.exe");
    ProfilesIni profile = new ProfilesIni();
    FirefoxProfile testprofile = profile.getProfile("debanjan");
    testprofile.setAcceptUntrustedCertificates(true);
    testprofile.setAssumeUntrustedCertificateIssuer(true);
    testprofile.setPreference("security.insecure_field_warning.contextual.enabled", false);
    DesiredCapabilities dc = DesiredCapabilities.firefox();
    dc.setCapability(FirefoxDriver.PROFILE, testprofile);
    dc.setCapability("marionette", true);
    WebDriver driver =  new FirefoxDriver(dc);
    driver.manage().window().maximize();
    driver.navigate().to("http://demosite.center/wordpress/wp-login.php");