Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails Watir Webdriver-选择选项不工作_Ruby On Rails_Selenium_Web Scraping_Watir Webdriver - Fatal编程技术网

Ruby on rails Rails Watir Webdriver-选择选项不工作

Ruby on rails Rails Watir Webdriver-选择选项不工作,ruby-on-rails,selenium,web-scraping,watir-webdriver,Ruby On Rails,Selenium,Web Scraping,Watir Webdriver,我正在Rails中编写web scraper,无法让Watir从select标记中选择选项。我尝试了多种变体,但所有人都认为这应该有效: browser.select_list(:id, "system").select("PC") 我已经测试过,以确保选择框和值都存在,我已经使用睡眠延迟单击以允许加载所有内容,我已经使用了。当你存在时,我在pry中尝试过,我可以在pry中设置和取消设置复选框,并看到实时效果,而不是选择框的情况,我没有想法。没有错误消息,它只是不起任何作用 以下是完整的代码:

我正在Rails中编写web scraper,无法让Watir从select标记中选择选项。我尝试了多种变体,但所有人都认为这应该有效:

browser.select_list(:id, "system").select("PC")
我已经测试过,以确保选择框和值都存在,我已经使用睡眠延迟单击以允许加载所有内容,我已经使用了。当你存在时,我在pry中尝试过,我可以在pry中设置和取消设置复选框,并看到实时效果,而不是选择框的情况,我没有想法。没有错误消息,它只是不起任何作用

以下是完整的代码:

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

首先,watir webdriver已被watir弃用。如果您使用gem watir,~>6.0.0,则不需要包括出现或睡眠时间

这对我来说很管用,现在默认使用Chrome

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
使用browser=Watir::browser.new:firefox在我的屏幕上实际上给了我一个问题,点击Find Games我需要做一个解决办法来通过javascript覆盖,但是使用select列表就可以了。Firefox50也是如此


使用早期版本的Firefox和geckodriver的选择列表存在一些问题,因此您可能需要使用Chrome或更新您的Firefox版本。

您使用的Firefox版本是什么?在Geckodriver v0.11.1 win32上使用Firefox v50.1.0时,您的代码对我来说工作正常。由于另一个项目的限制,我使用的是早期版本。泰特斯福特纳的解决方案对我很有效,我想为什么人们对这个问题投反对票?我问的方式有问题吗?很好,谢谢!我一定是从一本旧教程中阅读了我们的最新文档,以及在哪些地方添加了新内容:如果您愿意,也可以在Selenium Slack的Watir频道上与我们交谈: