In Selenium webdriver.switchto(), "relative=top" erzeugt Fehler?

Bin ich mit Selenium WebDriver (v2.2) zu "wechseln", um die "top" - frame wie folgt:

webdriver.SwitchTo().Frame("relative=top");

Diese generiert eine Fehlermeldung:

Unable to locate frame: relative=top

Kann dadurch verursacht werden, weil die Seite, ich verwende keine frames?

BEARBEITEN

Leider beide Lösungen beinhalten Fenster Wechsel fail:

webdriver.SwitchTo().Window(winHandle);
webdriver.SwitchTo().DefaultContent();

Streng genommen, eigentlich, Sie nicht scheitern. Aber, hier ist das problem: sagen wir mal ich hol ein IWebElement innerhalb eines Rahmens. Hier ist, was der code ungefähr aussieht:

descend-into-the-frame
grab-the-element
ascend-out-of-the-frame-to-the-top
use-the-element

Wenn ich-das-element, bekomme ich ein "Element nicht im cache vorhanden sind" Ausnahme. Dies ist, weil die ascend-out-of-the-Rahmen-auf-die-Spitze schaltet sich das Fenster, welches den cache löscht. Ziemlich ärgerlich. Ich habe herausgefunden, ein workaround, aber:

ascend-out-of-the-frame-to-the-top
descend-into-the-frame
grab-the-element
use-the-element

Dies immer noch bedeutet, ich muss aufpassen, element-nicht-in-die-cache Situationen. Aber mindestens so lange, wie ich ein element verwenden, sofort nach Holen, ich bin ok.

Danke für die Hilfe an alle!

InformationsquelleAutor Stephen Gross | 2011-12-15

Schreibe einen Kommentar