2011-10-10 23 views
22

Tengo algunos casos de prueba Selinium 2 Webdriver para Firefox e Internet Explorer 9. Cuando accedo a https URLs en IE9 (Windows 7 64bit) obtengo "Hay un problema con el certificado de seguridad de este sitio web ". En este punto, la prueba se bloquea y finalmente falla. Intenté: Selenium 2 Webdriver y IE 9 Security Certificate

  • Hacer que Selenium haga clic en "Continuar en este sitio web (no recomendado)". enlazar. Esto no se puede hacer ya que esta página de error no es su página habitual. Lo mismo con JavaScript: no se ejecuta.
  • Intenté agregar la clave de registro
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_ERROR_PAGE_BYPASS_ZONE_CHECK_FOR_HTTPS_KB954312
    que evita que se muestre la página de error de certificado - no funcionó. Probablemente porque estoy en Windows 7 con IE9.
  • siguiendo this consejos Intenté usar el proxy browsermob, pero hay muy poca documentación y no pude resolverlo.
  • Finalmente, no tengo acceso de administrador a mi PC - p. sin acceso a políticas grupales. Selenium 2 Webdriver funciona bien en Firefox. Tengo habilitadas todas las zonas de seguridad en las Opciones de Internet de IE y si ejecuto las pruebas en otras URL (http) no hay problema.

    ¿Alguien ha encontrado una solución a este problema? ¿Alguien ahora tiene ganas de usar el proxy de browsermob (o cualquier otro proxy) efectivamente para superar este problema?

    Gracias, Damo

    +1

    La tecla de función que mencionó no tiene nada que ver con la aceptación del certificado HTTPS. Su mejor opción es instalar el certificado en la tienda de confianza del usuario (certmgr.msc) suponiendo que el error es que la raíz no es de confianza. – EricLaw

    Respuesta

    2

    Esto funcionó para mí en el pasado, darle una oportunidad,

    DesiredCapabilities capabilities = new DesiredCapabilities(); 
    capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);  
    Webdriver driver = new InternetExplorerDriver(capabilities); 
    
    +1

    Lo intenté, pero sin suerte. ¿Has probado esto en IE9? –

    +0

    No lo he probado en IE9. ¿Los privilegios no administrativos le permiten instalar el certificado de seguridad en IE? o eso es algo que no prefieres? – nilesh

    +0

    Lo probé en w7, ie8 y no funciona – hithwen

    0

    Cualquier progess en esto? estoy tratando de hacer esto capacidades ... pero no saben cómo hacerlo usando Rubí :(

    en cromo es simple ya que se puede utilizar interruptores:

    nav=Selenium::WebDriver.for(:chrome, :switches => %w[--ignore-certificate-errors -]) 
    

    Tal vez es posible que lo haga por decir, utilizando interruptores

    26

    Está bien que sólo lo consiguió trabajando bajo IE9 usando C# y el código siguiente:

    IWebDriver driver = new InternetExplorerDriver(); 
    driver.Url(YOUR_URL); 
    driver.Navigate().GoToUrl("javascript:document.getElementById('overridelink').click()"); 
    

    Y ahora va a ir a la página deseada. Para Java es tan simple como:

    WebDriver driver = new InternetExplorerDriver(); 
    driver.get(YOUR_URL); 
    driver.get("javascript:document.getElementById('overridelink').click();"); 
    
    +0

    ¡Esto funcionó como un amuleto! ¡Gracias! – JacekM

    +0

    Muchas gracias. Realmente ayudó mucho. – GirishB

    +0

    Funcionó ... hombre genial ... la cosa es esta ... la gente copia el código ur en todos los lugares: D –

    0

    hay una solución mucho más simple en caso de que utilice conductor IE, documentado en este reply. El beneficio adicional es que no tiene que ser el propietario del sitio y no tiene que enredarse con browsermob o el registro o cualquier otra tecnología de bajo nivel

    0

    Podemos utilizar el siguiente código.

    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(); 
    
    4

    Usando los enlaces Selenio-Python:

    #region SSL workaround for IE 
    if "Certificate Error" in driver.title: 
        driver.get("javascript:document.getElementById('overridelink').click();") 
    
    0

    Las otras respuestas tienen la idea correcta, pero fallan en la práctica porque el WebDriver no navega inmediatamente a la página de error de certificado. La implementación correcta debería esperar un poco.

    new WebDriverWait(driver, 10).until(ExpectedConditions.titleContains("Certificate")); 
    
    
    driver.navigate().to("javascript:document.getElementById('overridelink').click()"); 
    
    Cuestiones relacionadas