【问题标题】:Rails Watir Webdriver - select option not workingRails Watir Webdriver - 选择选项不起作用
【发布时间】:2016-12-19 16:10:41
【问题描述】:

我正在 Rails 中编写网络爬虫,但无法让 Watir 从选择标签中选择选项。我尝试了多种变体,但从各方面来看,这应该可行:

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

我已经测试以确保选择框和值都存在,我使用 sleep 来延迟单击以允许加载所有内容,我使用了 .when_present,我已经尝试过 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

【问题讨论】:

  • 您使用的是哪个版本的 Firefox?在将 Firefox v50.1.0 与 Geckodriver v0.11.1 (win32) 一起使用时,您的代码按预期工作。
  • 由于另一个项目的限制,我使用的是早期版本。 titusfortner 的解决方案对我有用
  • 为什么人们不赞成这个问题?我问的方式有问题吗?

标签: ruby-on-rails selenium web-scraping watir-webdriver


【解决方案1】:

首先,watir-webdriver 已被 watir 弃用。如果您使用 gem "watir", "~> 6.0.0",则不需要包含 #when_present(或 sleeps)。

这对我有用(它现在默认使用 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 实际上会导致单击“查找游戏”时出现问题(我需要使用watir-scroll 解决问题以通过javascript 覆盖),但可以很好地使用选择列表。 (Firefox 50 也是如此)。

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

【讨论】:

  • 完美,谢谢!我一定是在阅读旧教程
  • 我们拥有的最新文档,以及将添加新内容的位置:watir.github.io 如果您愿意,也可以随时在 Selenium Slack 的 Watir 频道上与我们交谈:seleniumhq.herokuapp.com
猜你喜欢
  • 2017-02-23
  • 1970-01-01
  • 2015-06-16
  • 2015-02-17
  • 1970-01-01
  • 2020-05-01
  • 1970-01-01
  • 2013-08-08
  • 1970-01-01
相关资源
最近更新 更多