我有按钮的html代码,如下所示我了解风险
我想点击按钮,它会展开并点击另一个按钮,该按钮会在展开后显示。
我有一个要求,当用户输入此页面“https://cacert.org/”时,它会要求提供SSL证书,然后我会点击“我了解风险”链接然后点击“添加例外”按钮然后点击它将弹出“添加安全例外”弹出,然后单击“确认安全例外”按钮。我不想过度使用SSL证书错误
请参阅我的代码snipet ::
public class main_script {
public static WebDriver driver;
@Test
public void test() throws Exception{
ProfilesIni profile = new ProfilesIni();
FirefoxProfile myprofile = profile.getProfile("work");
myprofile.setAcceptUntrustedCertificates(false);
WebDriver driver = new FirefoxDriver(myprofile);
driver.manage().window().maximize();
driver.get("https://cacert.org/");
driver.findElement(By.id("expertContent")).click();
driver.findElement(By.id("exceptionDialogButton")).click();
}
所以我无法点击“我理解风险”链接
答案 0 :(得分:0)
网站(https://cacert.org/)的证书无效(或者更确切地说是#34;使用过时的密码套件")。但警告并非来自网站,它来自您的浏览器(每个浏览器都会显示不同的警告)。所以我认为这里失败的是driver.get
,因为它永远不会导航到网站,而是停留在浏览器的安全性和#34;对话框,来自" chrome:// browser"空间。
通常不是通过单击这些UI选项来处理证书,而是通过为selenium创建特殊配置文件,其中证书被一次性永久接受(如here所述)或设置浏览器以接受不受信任的证书,正如here
所解释的那样答案 1 :(得分:0)
我同意@ kiril-s
要备份,您可以使用参数创建驱动程序。您只需在创建驱动程序之前定义它们。
DesiredCapabilities capability = DesiredCapabilities.chrome();
capability.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
driver = new ChromeDriver(capability);
让驱动程序绕过SSL证书及其设置可能是您最好的方法,尽管我也已经看到这样做了Window Handles