2016-12-19 8 views
-2

Ich schreibe einen Web-Scraper in Rails und kann Watir nicht dazu bringen, eine Option aus einem Select-Tag auszuwählen. Ich habe mehrere Varianten ausprobiert, aber von allen Konten sollte diese Arbeit:Rails Watir Webdriver - Option wählen funktioniert nicht

browser.select_list(:id, "system").select("PC") 

ich getestet habe ist sicher, dass sowohl das Auswahlfeld und Wert machen vorhanden ist, habe ich verwendet, Schlaf, den Klick zu verzögern alles zu ermöglichen, laden, habe ich .when_present verwendet, ich habe es versucht, in hebeln (ich kann checkboxes setzen und in hebeln und den Effekt live sehen, nicht der Fall mit der Auswahlbox) und ich bin aus Ideen. Es gibt keine Fehlermeldungen, es tut einfach nichts.

Hier ist der vollständige Code:

require 'watir-webdriver' 
require 'pry' 

browser = Watir::Browser.new 
browser.goto 'http://www.co-optimus.com/games.php' 

browser.div(id: "system-modal").link(class: "close-reveal-modal").click 

sleep 5 
browser.select_list(:id, "system").when_present.select("PC") 

sleep 1 
browser.checkbox(id: "couch").when_present.set 

sleep 2 
browser.link(text: "Find Games").when_present.click 
+0

Welche Firefox-Version verwenden Sie? Ihr Code hat bei der Verwendung von Firefox v50.1.0 mit Geckodriver v0.11.1 (win32) wie erwartet funktioniert. –

+0

Ich verwendete eine frühere Version wegen einer Einschränkung mit einem anderen Projekt. Die Lösung von titusfortner funktionierte für mich obwohl –

+0

Warum Leute diese Frage ablehnen? Ist etwas falsch mit der Art, wie ich es gefragt habe? –

Antwort

1

Erstens watir-WebDriver von watir ist veraltet. Wenn Sie verwenden, müssen Sie #when_present (oder die Betten) nicht einschließen.

Dies funktioniert für mich (es verwendet Chrome nun standardmäßig)

require 'watir' 

browser = Watir::Browser.new 
browser.goto 'http://www.co-optimus.com/games.php' 
browser.div(id: "system-modal").a.click 
browser.select_list(id: "system").select("PC") 
browser.checkbox(id: "couch").set 
browser.button(text: "Find Games").click 

Mit browser = Watir::Browser.new :firefox auf meinem Bildschirm Probleme gibt tatsächlich einen Klick auf „Finden Games“ (ich eine Abhilfe mit watir-scroll tun muß, würde zu bekommen vorbei an der Javascript-Overlay), funktioniert aber mit der Select-Liste ganz gut. (Dies ist auch mit Firefox 50).

Es gab einige Probleme mit Select-Listen, die frühere Versionen von Firefox mit Geckodriver verwenden. Daher müssen Sie möglicherweise Chrome verwenden oder Ihre Firefox-Version aktualisieren.

+0

Perfekt, danke! Ich muss von einem alten Tutorial gelesen haben –

+1

Die neuesten Dokumente, die wir haben, und wo neue Sachen hinzugefügt werden: http://watir.github.io/ Auch fühlen Sie sich frei, mit uns auf dem Watir-Kanal im Selenium Slack zu sprechen, wenn Sie wollen: https://seleniumhq.herokuapp.com/ – titusfortner

Verwandte Themen