【问题标题】:Show searched links url in command line with watir使用 watir 在命令行中显示搜索到的链接 url
【发布时间】:2016-04-29 05:37:30
【问题描述】:

我是 Ruby 新手,现在我正在尝试使用 watir。所以我需要在我的命令行中显示所有创建的 url。这是我的代码的开头:

browser = Watir::Browser.new 

puts "1. Entering Google"
browser.goto "http://www.google.com"
search_text = "text"
puts " 2. enter "+ search_text +" in the search text field."
browser.text_field(:name, "q").set search_text
puts "3. click the 'Google Search' button."
browser.button(:name, "btnG").click
puts " First 10 links: "

有人可以帮助我吗?非常感谢 ! ;)

【问题讨论】:

    标签: ruby-on-rails ruby testing watir watir-webdriver


    【解决方案1】:

    链接存储在h3标签中,类名为'r',因此您可以通过以下方式获取链接元素的集合:

    links = browser.h3s(class: 'r').map(&:link)
    

    url 存储在 href 标记中,因此您可以通过以下方式获取 href 值数组:

    hrefs = links.map(&:href)
    

    所以要打印这个:

    hrefs.each { |href| puts href }
    

    但其中一些 href 会通过重定向,因此您可能需要这样做:

    links.each { |link| puts "#{link.data_href || link.href}" }
    

    【讨论】:

      【解决方案2】:

      这是从特定页面元素中提取链接的通用方法。它指定容器元素(即div 标签),收集该容器中的links,并为每个链接打印text(或每个href——取决于块中指定的内容):

      require 'watir-webdriver'
      b = Watir::Browser.new 
      b.goto('http://www.iana.org/domains/reserved')
      
      b.div(class: "navigation").links.each { |link| puts link.text}
      b.div(class: "navigation").links.each { |link| puts link.href}
      

      【讨论】:

        猜你喜欢
        • 2019-05-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-28
        • 2019-01-31
        • 2013-04-02
        相关资源
        最近更新 更多