ruby - Ruby Watir:显示来自 chrome 搜索的超链接
问题描述
目标:使用 Watir 打印从几个关键字输入到搜索引擎(在本例中为 chrome)搜索到的一组超链接。
事情是我下面的代码在过去一年中运行良好。对其进行了多次测试,但在 Chrome 和元素或选择器的范围内发生了一些变化,或者 watir 已经弃用了某些功能,但我使用的 ruby 代码行数很少。它只是挂起。(编辑终端中没有产生任何结果,实际上并没有挂起)我已经煞费苦心地研究了这个,只有一个类似案例的其他链接,我从那里得到了我以前的代码,但现在它不再作品:使用 watir 在命令行中显示搜索到的链接 url
require 'watir'
browser = Watir::Browser.new:chrome
browser.goto 'google.com'
browser.text_field(title: 'Search').set 'watir + ruby'
browser.button(name: 'btnK').click
sleep 3
links = browser.h3s(class: 'r').map(&:link)
hrefs = links.map(&:href)
links.each { |link| puts "#{link.data_href || link.href}" }
sleep(900)
所需的输出(用于工作) 终端显示超链接
解决方案
工作脚本现在生成搜索结果超链接(感谢 Justin Ko):
require 'watir'
browser = Watir::Browser.new:chrome
browser.goto 'google.com'
browser.text_field(title: 'Search').set 'watir + ruby'
browser.button(name: 'btnK').click
sleep 3
puts browser.title
links = browser.divs(class: 'r').map(&:link)
hrefs = links.map(&:href)
# hrefs.each { |href| puts href }
links.each { |link| puts "#{link.data_href || link.href}" }
sleep(900)
推荐阅读
- python - 如何使用 create_user 在 django 中创建具有自定义属性的用户?
- python - 在 Python 中将数字与文本分开
- vb.net - VB 尝试调用具有多个输出的函数,得到“无法将 'System.Object[,]' 类型的对象转换为 'System.String[,]' 类型。” 错误
- r - 如何从R中96孔微孔板的荧光图像中提取像素值
- javascript - EditorJS 在点击时自动对焦
- awk - 计算每行重复的列
- app-store - Apple TV 产品页面壁纸?
- c++ - C++ 中的“类”类型重新定义错误 C2011
- azure - 如何使用 Python Azure Functions QueueTrigger 手动将消息出列?
- javascript - 为什么有条件时html标签不呈现?