2011-08-16 18 views
19

Próbuję utworzyć instancję InternetExplorerDriver w języku C#, i za każdym razem, gdy robię, pojawia się następujący komunikat o błędzie :Podczas korzystania z Selenium Webdriver pojawia się następujący błąd przy użyciu InternetExplorerDriver - "Nieoczekiwany błąd podczas uruchamiania Internet Explorera ...."

System.InvalidOperationException: nieoczekiwany błąd podczas uruchamiania przeglądarki Internet Explorer. Tryb chroniony musi być ustawiony na tę samą wartość (włączony lub wyłączony) dla wszystkich stref. (NoSuchDriver)

Teraz nie jestem pewien, jak to rozwiązać, ale linia kodu, który powoduje błąd w pytaniu jest:

IWebDriver driver = new InternetExplorerDriver(); 

Dokumentacja InternetExplorerDriver sugeruje, że mogę przechodzić w ICapabilities obiektu w przeciążonej konstruktora, ale to tylko ma właściwości BrowserName, IsJavaScriptEnabled, Platform i Version. Żadne z nich nie sugeruje, że mogą rozwiązać problem.

Czy jest coś, co muszę zrobić w ramach realizacji to rozwiązać? Czy muszę zmienić niektóre ustawienia w samym IE9?

Odpowiedz

16

Internet Explorer definiuje cztery strefy, każda z innego poziomu bezpieczeństwa i zdolności, aby włączyć lub wyłączyć tryb chroniony. Komunikat o błędzie próbuje powiedzieć, że tryb chroniony musi albo być wyłączony lub włączony do wszystkie stref ze względu na ograniczenia w selen na InternetExplorerDriver.

Aby uzyskać więcej informacji, zobacz defect report in Selenium's issue tracker i screenshot of Internet Explorer security options.

+0

Drugi link (do zrzutu ekranu) jest uszkodzony. – Anthony

+0

@Anthony Dzięki, naprawione. –

+5

Nie jestem jeszcze zepsuty dla mnie .. Nie jestem zalogowany do google (jeśli muszę się zalogować, żeby go zobaczyć, to w rzeczywistości nie jest on w Internecie) – Anthony

24

Dla porównania, jeśli zechcą zastąpić opcje zabezpieczeń Oto kod C#:

using NUnit.Framework; 
using OpenQA.Selenium; 
using OpenQA.Selenium.IE; 

namespace SeleniumTests 
{ 
    [TestFixture] 
    public class Test 
    { 
     private IWebDriver driver; 

     [SetUp] 
     public void Setup() 
     { 
      var options = new InternetExplorerOptions(); 
      options.IntroduceInstabilityByIgnoringProtectedModeSettings = true; 
      driver = new InternetExplorerDriver(options); 
     } 
    } 
} 

Aktualizacja:
Moje poprzednie rozwiązanie używane starszą wersję Selen 2.0, mam teraz zaktualizowane kod do pracy z Selenium DotNet-2.21.0 i zawierał poprawne przestrzenie nazw.

+0

Ten kod jest przestarzały - daje 2 ostrzeżenia dotyczące kompilacji i nie udaje się biegać. – Anthony

+0

jakiej wersji Selenium używasz? jaki błąd dostałeś? –

+0

Nie ma deklaracji dla kierowcy, ponieważ została ona zdefiniowana w oryginalnym kodzie OP. Sprawdzę mój kod źródłowy, skąd go wziąłem i powtórzę test. –

7

To powinno rozwiązać problem:

InternetExplorerOptions options = new InternetExplorerOptions(); 
options.IntroduceInstabilityByIgnoringProtectedModeSettings = true; 
IWebDriver driver = new InternetExplorerDriver(options); 
1

znalazłem następujący pracował dla mnie (żadna z odpowiedzi powyżej pracował)

DesiredCapabilities desiredCapabilities = new DesiredCapabilities(); 
desiredCapabilities.SetCapability(InternetExplorerDriver.IntroduceInstabilityByIgnoringProtectedModeSettings, true); 
driver = new InternetExplorerDriver(desiredCapabilities); 

Okazało się, że to działa, ale ja również otrzymałem "(Nieoczekiwany Alert Otwarty)" kiedy próbowałem uruchomić test, który z wszystkich rzeczy się okazał, musiałem wyłączyć pasek narzędzi programisty IE.

0

miałem podobny problem na serwerze, który został zbudowany i nie miałem żadnej możliwości zmiany trybu chronionego. Został wyłączony przez administratora systemu. Nawet gdy zalogowałem się na konto administratora, nie mogłem zmienić trybu chronionego. Jednak udało mi się uruchomić selen bez problemu.

1

Patrz link: - https://intensetesting.wordpress.com/2014/09/16/error-80070012-unexpected-error-launching-spoon-based-internet-explorer/

Jeśli uaktualnić lub pogorszyć natywną przeglądarkę IE, które zostało zainstalowane podczas instalacji systemu nie umożliwi otwieranie przeglądarek łyżką. Za każdym razem, gdy potrzebujemy ustawić domyślną przeglądarkę IE, będzie działać. Załóżmy, że podczas instalacji systemu operacyjnego domyślną wersją przeglądarki IE jest IE8 i w niektórych przypadkach została ona zaktualizowana do wersji IE9. W tym przypadku nie pozwoli to na nawigację w aplikacji w przeglądarkach Spoon (otworzy się tylko przeglądarka) i po prostu wyświetli komunikat o błędzie "Nieoczekiwany błąd podczas uruchamiania przeglądarki Internet Explorer IELaunchURL zwrócił błąd 80070012".

3

Odpowiedź Aleh rozwiązała problem, ale musiałem również podać ścieżkę pliku dla lokalizacji IEDriverServer. Po prostu publikuj na wypadek, gdyby ktoś inny wpadł na podobny problem.

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using OpenQA.Selenium; 
using OpenQA.Selenium.IE; 
using OpenQA.Selenium.Support.UI; 

namespace SeleniumTest 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      InternetExplorerOptions options = new InternetExplorerOptions(); 
      options.IntroduceInstabilityByIgnoringProtectedModeSettings = true; 

      IWebDriver driver = new InternetExplorerDriver("C:\\Selenium", options); 

      driver.Navigate().GoToUrl("http://www.stackoverflow.com"); 
     } 
    } 
} 
Powiązane problemy