2017-10-12 1 views
0

Also mit C# Selen im, CRM Dynamics zu automatisierenTimeouts mit Selen, Dynamik und das heißt Fahrer

Sein und MS-Produkt es Probleme mit FF und Chrome hat, so habe ich es in IE läuft (und damit der IEDriver Server)

Jetzt Leistung ist sowieso schlecht, mit Locators verbinden Fehler, aber wenn in Debug es funktioniert alles so ist es ein Timing-Problem

Versuchte webdriverwait und das tat nichts ich habe ein 500ms warten in der Fahrer trat durch Rufen Sie an und dies verbessert die Dinge (der Webdriver bewegt sich zu schnell für den Browser es scheint), aber es immer noch fällt um. Ich habe sogar ein thread.sleep (1000) auf einige langsam ladende Seiten gelegt und das hilft aber insgesamt 30% der Zeit.

Wer hat irgendwelche Ideen, wie ich das alles zuverlässiger machen kann?

WebDriverWait wait = new WebDriverWait(DriverContext.Driver, TimeSpan.FromSeconds(15)); 
DriverContext.Driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromMilliseconds(500); 
DriverContext.Driver.SwitchTo().Window(DriverContext.Driver.‌​WindowHandles.Last()‌​); 
DriverContext.Driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromMilliseconds(500); wait.Until(ExpectedConditions.ElementToBeClickable(By.CssSel‌​ector("#crmGrid_quic‌​kFindContainer"))); 

Das Problem ist nicht mein Code Ich weiß, dass, wie seine Werke alle in Ordnung, wenn ich durch, im Debug-Schritt im mehr daran interessiert, ob jemand CRM versucht hat, bevor zu automatisieren und weiß einen Weg, um die schlechte Leistung des bekommen App selbst vor allem bei Kopplung mit dem Treiber für Webtreiber

+0

Bitte klären Sie Ihr spezifisches Problem oder fügen Sie zusätzliche Details hinzu, um genau zu markieren, was Sie brauchen. Wie es derzeit geschrieben wird, ist es schwer zu sagen, was genau Sie fragen. Informationen zur Klärung dieser Frage finden Sie auf der Seite [Wie Sie Fragen stellen] (https://stackoverflow.com/help/how-to-ask). – DebanjanB

+0

Können Sie die aktuelle Frage mit Ihrem Codeblock aktualisieren? – DebanjanB

Antwort

0

Haben Sie versucht implizit warten?

Implizite Wartezeit für 10 Sekunden, ändern Sie gemäß Ihrer Anforderung.

driver.Manage() Timeouts() = ImplicitWait TimeSpan.FromSeconds (10)..;

Lassen Sie mich wissen, ob dies hilft.

+0

Entschuldigung funktioniert immer noch 50% der Zeit auch mit dieser –

+0

Dies ist tatsächlich ein Problem mit langsamen Laden Websites von den meisten Automatisierung Tester konfrontiert.Versuchen Sie eine Wartezeit bis Seite geladen wird mit expliziten warten auf ein bestimmtes Element in der Seite, die Sie wissen werden Zuletzt geladen in dieser Seite kann es helfen. Aber der Nachteil ist, je mehr Wartezeiten Sie in Ihren Tests einführen, desto langsamer wird Ihre Testausführung :-( – weber

0

Versuchen Sie zu verwenden https://github.com/microsoft/easyrepro Guys hat wirklich großen Job Bau von Framework auf CRM und Selenium. Habe es nicht mit IE versucht, aber funktioniert wie ein Charme für FF und Chrome.