2017-05-09 3 views
0

ich die C# Bindungen des Chrome-Selen WebDriver verwenden, und die Navigation zu einer Seite zufällig fehl. Es ist nicht konsistent, welcher Test es ist, aber es tritt konsistent über mehrere Tests hinweg auf, wenn die gesamte Suite ausgeführt wird, und es ist konsistent auf derselben Seitenänderung. Im Folgenden habe ich den Code eingefügt, den ich verwende, um die Treiberinstanz zu erstellen. Die URL, die ich selbst verwende, ist jedoch keine öffentlich zugängliche URL.Chrome WebDriver stürzt

Eine weitere Überlegung ist, dass ich NUnit bin mit zwei Test parallel laufen zu lassen.

var options = new ChromeOptions(); 
options.AddArgument("start-maximized"); 
options.AddArgument("disable-infobars"); 
options.AddArgument("--incognito"); 
options.AddUserProfilePreference("credentials_enable_service", false); 
options.AddUserProfilePreference("profile.password_manager_enabled", false); 
options.SetLoggingPreference(LogType.Browser, LogLevel.All); 
options.SetLoggingPreference(LogType.Driver, LogLevel.All); 
options.SetLoggingPreference(LogType.Client, LogLevel.All); 
options.SetLoggingPreference(LogType.Server, LogLevel.All); 
options.SetLoggingPreference(LogType.Profiler, LogLevel.All); 

var driver = new ChromeDriver(DriverPathOnSystem, options); 
driver.Manage().Timeouts().PageLoad = TimeSpan.FromSeconds(60); 
driver.Navigate().GoToUrl(url); 

Versionen

  • ChromeDriver 2,29
  • Chrome 58.0.3029.96 (64 bit)
  • Selenium.WebDriver (NuGet) 3.4.0
  • Selenium.Support (NuGet) 3.4.0

EDIT # 1: Die ChromeDriver ist 32bit und Chrom ist 64bit. Ich habe einige Nachforschungen angestellt, es scheint keinen 64-Bit-ChromeDriver zu geben, und meine Recherchen sagten, dass die beiden funktionieren würden - könnte es ein neuer Bug oder etwas sein?

Antwort

0

Deaktivieren der DNS-Prefetch alle für Abstürze behoben. Ich bin nicht 100%, was es zu tun versucht hat, dass die Seite zum Absturz gebracht hat, vielleicht hat es etwas mit npm zu tun? So oder so, es war eine sehr einfache Lösung:

var options = new ChromeOptions(); 
options.AddArgument("start-maximized"); 
options.AddArgument("disable-infobars"); 
options.AddArgument("--incognito"); 
options.AddUserProfilePreference("credentials_enable_service", false); 
options.AddUserProfilePreference("profile.password_manager_enabled", false); 
options.AddArgument("--dns-prefetch-disable"); 

var driver = new ChromeDriver(DriverPathOnSystem, options); 
driver.Manage().Timeouts().PageLoad = TimeSpan.FromSeconds(60); 
driver.Navigate().GoToUrl(url); 
Verwandte Themen