2011-10-10 12 views
22

Ho alcuni casi di test di selenio 2 Webdriver per Firefox e Internet Explorer 9. Quando accedo a https URL su IE9 (Windows 7 a 64 bit) ottengo "C'è un problema con il certificato di sicurezza di questo sito Web ". A questo punto il test si blocca e alla fine fallisce. Ho provato: Selenium 2 Webdriver e IE 9 Certificato di sicurezza

  • Ottenere selenio per fare clic su "Continua su questo sito Web (non consigliato)". collegamento. Questo non può essere fatto in quanto questa pagina di errore non è la tua solita pagina. Lo stesso con JavaScript: non viene eseguito.
  • Ho provato ad aggiungere la chiave di registro
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_ERROR_PAGE_BYPASS_ZONE_CHECK_FOR_HTTPS_KB954312
    che impedisce la visualizzazione della pagina di errore del certificato - non ha funzionato. Probabilmente perché sono su Windows 7 con IE9.
  • Seguendo il consiglio this ho provato a utilizzare il proxy browsermob, ma la documentazione disponibile è scarsa e non riesco a risolverlo.
  • Infine, non ho accesso amministratore al mio PC - ad es. nessun accesso ai criteri di gruppo. Selenium 2 Webdriver funziona perfettamente su Firefox. Ho tutte le zone di sicurezza abilitate in IE Internet Options e se eseguo i test su altri URL (http) non ci sono problemi.

    Qualcuno ha una soluzione a questo problema? Qualcuno ora ha voglia di usare il proxy browsermob (o qualsiasi altro proxy) per superare efficacemente questo problema?

    Grazie, Damo

    +1

    La chiave funzione che hai menzionato non ha nulla a che fare con l'accettazione del certificato HTTPS. La soluzione migliore è installare il certificato nell'archivio attendibile dell'utente (certmgr.msc) assumendo che l'errore è che la radice non è attendibile. – EricLaw

    risposta

    2

    Questo ha funzionato per me in passato, fare un tentativo,

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

    Provato, ma senza fortuna. Hai provato questo in IE9? –

    +0

    Non l'ho provato su IE9. I privilegi non di amministratore consentono di installare il certificato di sicurezza in IE? o è qualcosa che non preferisci? – nilesh

    +0

    ho provato a w7, IE8 e non funziona – hithwen

    0

    Qualsiasi progess in questo? che sto cercando di fare questa cosa funzioni ... ma non so come farlo utilizzando Rubino :(

    in Chrome è semplice dal momento che è possibile utilizzare gli interruttori:

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

    Forse è possibile farlo per esempio con interruttori

    26

    Ok ho appena ottenuto che funziona sotto IE9 utilizzando C# e il codice seguente:

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

    E ora andrà alla pagina di destinazione. Per Java è semplice come:

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

    Il tutto ha funzionato come un fascino! Grazie! – JacekM

    +0

    Grazie mille. Mi ha davvero aiutato molto. – GirishB

    +0

    lavorato .... uomo fresco ... la cosa è questo ... la gente copia il codice ur in tutti i luoghi: D –

    0

    c'è una soluzione molto più semplice nel caso in cui si utilizza il driver di IE, documentato in questo reply. Il vantaggio aggiunto è che non devi essere il proprietario del sito e non devi intrufolarti con browsermob o il registro o qualsiasi altra tecnologia di basso livello

    0

    Possiamo usare il seguente codice.

    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

    Utilizzando i binding Selenio-Python:

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

    Le altre risposte hanno l'idea giusta, ma non riescono in pratica, perché il WebDriver non si passa immediatamente alla pagina di errore del certificato. L'implementazione corretta dovrebbe attendere un po '.

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