Webdriver So warten Sie, bis das Element im Webdriver C # anklickbar ist

8

Es gibt einen Block Ui, ​​der alle Elemente für ein paar Sekunden abdeckt, nachdem das Element im Browser generiert wurde, da dies ein Problem darstellt. Da Element entstanden ist, versucht der Web-Treiber, auf das Element zu klicken Der Klick wird von Block UI empfangen. Ich habe versucht, die Wartezeit zu verwenden, bis ich aber nicht half, da ich isClickAble in C # webdriver finden kann

%Vor%

Gibt es C # -Aquivalent für isClickAble, Danke im Voraus

    
Anand S 17.04.2013, 09:56
quelle

3 Antworten

23

Nun, ich schaue mir die Java-Quelle an und sage mir, dass es im Grunde genommen zwei Dinge macht, um festzustellen, ob es "anklickbar" ist:

Ссылка

Zuerst wird es überprüft, ob es sichtbar ist, indem Sie den Standard ExpectedConditions.visibilityOfElementLocated verwenden, es wird dann einfach überprüft, ob element.isEnabled() true ist oder nicht.

Dies kann leicht kondensiert werden, das bedeutet im Grunde (vereinfacht, in C #):

  1. Warten Sie, bis das Element vom DOM
  2. zurückgegeben wird
  3. Warten Sie, bis die .Displayed -Eigenschaft des Elements wahr ist (was im Wesentlichen der Wert ist, nach dem visibilityOfElementLocated sucht).
  4. Warten Sie, bis die .Enabled -Eigenschaft des Elements wahr ist (was im Wesentlichen das ist, wonach elementToBeClickable sucht).

Ich würde dies wie folgt implementieren (indem ich den aktuellen Satz von ExpectedConditions hinzufüge, aber es gibt mehrere Möglichkeiten, dies zu tun:

%Vor%

Verwendbar in etwas wie:

%Vor%

Sie könnten jedoch eine andere Vorstellung davon haben, was clickable bedeuten könnte. In diesem Fall funktioniert diese Lösung möglicherweise nicht - aber es ist eine direkte Übersetzung dessen, was der Java-Code tut.

    
Arran 17.04.2013, 10:20
quelle
1

Hier ist der Code, den ich verwende, um zu überprüfen, ob er anklickbar ist, sonst gehe ich zu einer anderen URL.

%Vor%     
Phil Hudson 09.03.2016 05:16
quelle
0

Wenn Sie ein Problem haben wie "Ein anderes Element würde den Klick erhalten", ist es eine Möglichkeit, eine while-Schleife zu verwenden, die darauf wartet, dass diese Überlagerungsbox verschwindet.

%Vor%     
tetenal 18.04.2016 21:47
quelle