如何使用watir从rect html标记中检索值

时间:2015-04-14 17:13:50

标签: ruby watir watir-webdriver

有没有办法使用Watir从rect标签中检索值。我可以给出一个示例网址。页面下方有矩形条。请找到它

http://www.healthgrades.com/hospital-directory/california-ca-los-angeles/good-samaritan-hospital-hgste2618d46050471?#Readmission

我见过几个来源,但我没有办法得到这些细节。任何人都可以帮助我吗?

3 个答案:

答案 0 :(得分:1)

是的,您可以将其作为通用元素访问(仅限示例,不适用于您的代码)。您要查找的数据元素是highcharts-data-labels。

values = browser.element(:css => "g.highcharts-data-labels")

你也可以使用xpath选择器访问该元素,并且可以通过检查元素并请求xpath选择器在Chrome中获取该元素

//*[@id="highcharts-2"]/svg/g[4]/g[2]/text
祝你好运!

答案 1 :(得分:0)

您可以使用xpaths选择所需的矩形。您提供的链接上的每个矩形都有一个唯一的xpath。你的代码可能是这样的:

browser.element(:xpath, "//*[@id='highcharts-0']/svg/g[7]/g/rect[1]").flash 

答案 2 :(得分:0)

您可以使用@ jeff-price指出的两种方式之一访问该元素,或者您可以扩展watir以添加对该标记的支持。

默认情况下不包含此内容,因为该内容不属于HTML5标准。基本上相当于这样的“自定义”标签,当然有无限数量的潜在自定义标签。不可能为所有人添加支持。

OTOH你很容易在你的项目中包含一小段代码,这些代码会为watir添加对标签的支持,如果你知道你的项目正在大量使用它,那就非常有意义了。

# extend watir to allow support for custom elements not expressly defined in HTML spec

module Watir
  module Container
    def g(*args)
      G.new(self, extract_selector(args).merge(:tag_name => "g"))
    end

    def gs(*args)
      GCollection.new(self, extract_selector(args).merge(:tag_name => "g"))
    end
  end

  class G < Element
  end

  class GCollection < ElementCollection
    def element_class
      G
    end
  end
end

取决于您正在使用的框架等,您可以将其放入文件中并在测试代码的早期需要该文件,或将其放入自动加载的目录中的文件中。

e.g。我使用Cucumber,所以我创建了一个名为custom_element_support.rb的文件,其中包含该代码,并将其放入features/support目录,黄瓜将在启动时自动加载