2016-05-03 10 views
1

Ich verwende das Seitenobjekt gem mit einer Seite, die einen Link enthält.click_no_wait und dann execute_script

Wenn auf den Link geklickt wird, navigiert der Browser zu einer neuen Seite und der HTML-Code wird wie erwartet gerendert.

Allerdings gibt mein Skript immer eine Timeout::Error: Timeout::Error zurück. Nachdem ich die Netzwerkaktivitäten des Browsers angeschaut hatte, bemerkte ich ein Muster mit einer langen Laufzeit, die niemals abgeschlossen wurde.

Wenn ich das Skript ausführen und dann zur Konsole gehen und den Befehl $.connection.hub.stop() ausgeben, wird das Skript keine Zeitüberschreitung.

Gibt es eine Möglichkeit, eine click_no_wait durchzuführen oder ein Skript über die Verwendung von page_object_gem zu klicken und dann auszuführen?

Hier ist mein Seite-Objekt-Versuch, aber es führt immer noch zu einem Timeout.

class MyThing 

    include PageObject 
    include PageObject::PageFactory 

    link(:show_details, :id => 'detailLink') 

    def click_show_details_no_wait 
    begin 
     show_details_element.click 
    rescue Exception => e 
     execute_script('$.connection.hub.stop();') 
    end 
    end 

end 

Antwort

2

Es ist schwer, ohne Ihre Seite vorschlagen. Meine erste Idee ist es zu versuchen

show_details_element.fire_event('click') 

anstelle eines üblichen Klick zu tun.

Die zweite Idee ist bei

Viel Glück einen Blick darauf werfen.

+0

Dank endete die Umsetzung des Artikels im ersten Punkt. – niartseoj