Firefox selenium webdriver提供“不安全连接”

时间:2017-06-23 08:39:55

标签: java maven selenium firefox

我创建了一个Maven项目,其中包含使用Selenium Webdriver(java)进行的20次测试。现在,当我想执行我的Maven项目时,有时会出现以下错误:

Mozilla error

这是因为每次测试都要登录。因此,当我想运行20个测试时,有时会出现错误并且我无法继续测试,因此它会在Selenium Webdriver中返回“失败的测试”。

有人知道如何解决这个问题吗? 我试过把“Thread.sleep(30000);”在每次测试结束时给他们一些时间“不要看起来像机器人”,但它不起作用......

非常感谢你的帮助!

1 个答案:

答案 0 :(得分:1)

以下是您的问题的答案:

真实问题:

  1. 如果是Not Secure,您使用的网址/连接只有当您通过Mozilla Firefox 53.0访问网址时,Firefox才会在地址栏中显示带有红色透视红色删除图标的锁定图标。现在,当URL被加载时,默认情况下,光标将位于Username字段上,弹出窗口会显示This connection is not secure. Logins entered here could be compromised. Learn More这样的消息:
  2. enter image description here

    1. 现在,您通过Selenium的脚本会在Username输入字段中输入用户名,而Not Secure弹出窗口会覆盖Password输入字段。
    2. 如果您尝试在click()输入字段中调用sendKeys()Password操作,则Not Secure弹出窗口会收到点击,然后Insecure password warning in Firefox页面会打开在下一个标签中,Selenium将其焦点转移到新标签。因此,测试用例开始失败
    3. enter image description 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");
        
      6. 如果这回答你的问题,请告诉我。