首页 > 解决方案 > 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)

所需的输出(用于工作) 终端显示超链接

标签: rubygoogle-chromewatir

解决方案


工作脚本现在生成搜索结果超链接(感谢 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)

在此处输入图像描述


推荐阅读