wie zu scrollen einer Webseite mit watir
Ich versuche zu scrollen einer Webseite zu finden und klicken Sie auf einen Inhalt, der ist faul geladen, wenn die Seite gescrollt wird. Ich bin mit dem folgenden Befehl
require 'watir-webdriver'
@browser = Watir::new :firefox
@browser.send_keys :space
Bin ich mit dem web-Treiber mit firefox und ich bin auf ubuntu, aber es funktioniert nicht. In den folgenden ruby-code, den ich versuche zu scrollen die Seite herunter, bis ich nicht finden, das element, mit :id. Das element ist be-träge.
Ich bin immer timeout nach ein paar Sekunden, keine Ahnung, was falsch ist mit dem folgenden code.
When /^deal (\d+) is loaded$/ do |id|
(0..5).each do |click|
@browser.send_keys :space
end
end
Was ist der beste Weg, um einen Bildlauf eine Seite mit watir-Treiber ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie JavaScript aktiviert haben, können Sie den Zugriff auf die zugrunde liegenden Treiber und führen Sie einige JavaScript scrollen auf der Seite.
Blättern Sie unten auf der Seite 200 Pixel entlang der y axix.
Sehen Sie hier die Dokumentation der Methode:
http://www.w3schools.com/jsref/met_win_scrollby.asp
@browser.execute_script("window.scrollBy(0,200)")
.Benutze ich einen Juwel namens "watir-scrollen", um mir zu helfen mit diesem. Obwohl es in der Regel braucht Orte, um zu Blättern, es auch wird, navigieren Sie zu Koordinaten.
https://github.com/p0deje/watir-scroll
Seit Watir v6.16
watir-scroll
gem zusammengeführtwatir
Können Sie entweder einen Bildlauf zu einem bestimmten element
Oder einfach nur Blättern Sie zu der Mitte oben oder Mitte
Oder navigieren Sie zu einer Koordinate
undefined method scroll for #<Watir::Browser:0x314d858> (NoMethodError)
Sorry das konnte ich nicht auf den Kommentar der letzten Antwort, da ich hier neu bin und nicht genügend rep-Punkte, aber ich gerade eine neue Antwort. Wie auch immer, wenn jemand Probleme mit dem scrollen, mehrere Male versuchen, diese (hinzufügen einer Schleife und sleep):
0.15
können variieren, je nachdem, wie lange es dauert die Seite zu laden.0.15
beträgt 0,15 Sekunden so einstellen, wie benötigt werden, um ausreichend Zeit für die Seite zu laden. Die 200 kann auch angepasst werden müssen, um zu einem größeren pixel Höhe.wait_until{block}
? hardcoded warten, Methoden = reiztDies ersparte mir eine Menge Zeit:
Können Sie den Zugriff auf die zugrunde liegenden Treiber und ausführen von javascript. Zum Beispiel, wenn Sie wollten, um einen Bildlauf zum Ende der Seite, die Sie verwenden würden,
die Schriftrollen auf der Seite unten auf der y-Achse.
Funktioniert es