我是编程/ Ruby / Watir的新手,我想知道如何从网站上抓取的内容创建数组。
基本上我提示用户进行网站测试,输入网址,并且(最终)我希望能够让用户选择他们想要定位的网页的哪些元素。< / p>
######################
# User prompts for site to be tested #
#######################
置贴'自动化测试工具:输入您要测试的网站' URL = gets.chomp 把'测试以下网站:'''+ url +''''
#####################
# Watir method for invoking IE #
#####################
require 'watir/ie'
ie = Watir::IE.new
ie.goto url
**ie.show_links.each {|l| puts l}**
我用另一个Watir / Ruby网站获得的粗体线,当它成功打印到屏幕上的所有链接时,我宁愿存储链接/ images / tables / div,然后给用户选择如何/什么将被测试。显然,我需要更加深入了解Arrays如何在Ruby中工作。提前谢谢。
答案 0 :(得分:1)
它们已经在一个数组中:ie.links http://wtr.rubyforge.org/rdoc/1.6.5/classes/Watir/Container.html#M000318
您可以找到许多您想要选择的类型。祝你好运
答案 1 :(得分:0)
内容与元素不完全相同。页面元素存储在容器中,并通过其内容(以及其他内容)引用元素。因此,如果您想存储一堆文本字段的ID,那么就可以创建一个数组......
text_field_id_array = Array.new
ie.text_fields.each { |field| text_field_id_array << field.id }
但是存储文本字段本身只存储“指针”。因此,如果您在页面上有链接并使用ie.link(:index,1)存储了链接元素,那么在您存储的链接之前执行了在页面上创建链接的内容,然后单击您不存储的链接单击您存储的同一链接。它会点击“ie.link(:index,1)”。页面上的第一个链接......
mylink = ie.link(:index, 1) # Store the link you want
ie.button(:name, 'createsanearlierlink').click
mylink.click # Click the wrong link
我真的希望这是有道理的。