无法使用selenium webdriver单击链接

时间:2015-12-10 13:45:30

标签: events selenium button onclick webdriver

我有按钮的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();



}

所以我无法点击“我理解风险”链接

2 个答案:

答案 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);

http://www.abodeqa.com/2013/05/03/ssl-certificate-in-selenium-webdriver-for-chrome-and-firefox-browser/

让驱动程序绕过SSL证书及其设置可能是您最好的方法,尽管我也已经看到这样做了Window Handles