我可以使用不在表单内的Mechanize来获取HREF值吗?

时间:2013-01-22 18:45:39

标签: ruby mechanize mechanize-ruby

我的一个页面中有类似的HTML(带有表单名称):

<form name="test">
<td> <A HREF="http://www.edu/st/file.html">bla bla</A> </td>
<td> <A HREF="http://www.mac/spgm/file.html">boo bla</A> </td>
<td> <A HREF="http://www.dom/st/file.html">foo</A> </td>
</form>

另一个没有表单名称的页面:

<td> <A HREF="http://www.edu/st/file.html">bla bla</A> </td>
<td> <A HREF="http://www.mac/spgm/file.html">boo bla</A> </td>
<td> <A HREF="http://www.dom/st/file.html">foo</A> </td>

在这两种情况下,我都有值bla blaboofoo。使用这些值,我可以使用Mechanize获取相应的href值吗?

2 个答案:

答案 0 :(得分:2)

您可以从链接中获取href属性:

m = Mechanize.new
page = m.get("yourpage")
page.link_with(:text => "bla bla").href #=> "http://www.edu/st/file.html"

答案 1 :(得分:2)

您可以尝试迭代页面上的所有链接并检查文本是否相同。

doc.xpath('//a[@href]').each do |link|
  if link.text.strip == "bla bla"
    # Your code here.
end