2016-07-29 17 views
1

Ich verwende Selenium Webdriver, und ich möchte überprüfen, ob alles in einem Browser geladen hat (Chrome, wie es passiert). Im Browser-Hauptfenster werden 10 oder mehr Objekte geladen (jeweils in ihrem eigenen iframe). Ich möchte so schnell wie möglich feststellen, dass jedes Objekt geladen ist, und dann mit dem Rest des Tests fortfahren. Ist es möglich, das C# Parallel.foreach Konstrukt zu verwenden, um die Dinge hier zu beschleunigen, oder muss ich in Serie überprüfen.Kann ich parallele Objekterkennung in Selenium Webdriver haben

Parallel.ForEach(loop, f=> 
{ 
    try 
    { 
     _customObject.MethodCheckingForAnIWebElement(f, AnArrayWithSomeInfo[f]); 
    } 
    catch (Exception e) { Console.WriteLine("Throw:" + f + ":" + e.Message); } 
}); 

Der Code-Snippet oben f-1 Element wirft nicht Fehler auf dem Seite Objekt angebracht, die ich denken machen, dass ich gerade diesen Ansatz nicht. Um klar zu sein, jeder Anruf, werde ich so etwas wie

_webDriver.SwitchTo().Frame(aFrame) 
_webDriver.FindElement(By.CssSelector(some.property)); 

Entschuldigt, wenn ich einige offensichtliche Dokumentation zu diesem Thema verpasst haben!

+0

Antwort scheint nicht zu sein. :) – SlightlyKosumi

Antwort

-1

Die Antwort scheint zu sein, wie ich vermutete, in dem Threading-Modell, das wir für Selenium WebDriver haben, können wir nicht parallel verarbeiten. Daher der konsistente Anhangfehler. Siehe auch Can Selenium use multi threading in one browser?

+0

Verwenden Sie den Link zum Bearbeiten Ihrer Frage, um weitere Informationen hinzuzufügen. Die Schaltfläche Post-Antwort sollte nur für vollständige Antworten auf die Frage verwendet werden. - [Aus Bewertung] (/ review/low-quality-posts/14112736) – VDWWD

+0

Vielen Dank für Ihre Bewertung. Wie denkst du, könnte meine Antwort vollständiger sein? – SlightlyKosumi

+0

Die Antwort ist eher kurz und ohne Code. Es könnte ein Update für Ihre Frage gewesen sein. – VDWWD