class Mechanize::Page::Link
This class encapsulates links. It contains the text and the URI for 'a' tags parsed out of an HTML page. If the link contains an image, the alt text will be used for that image.
For example, the text for the following links with both be 'Hello World':
<a href="http://example">Hello World</a> <a href="http://example"><img src="test.jpg" alt="Hello World"></a>
Attributes
attributes[R]
href[R]
node[R]
page[R]
referer[R]
Public Class Methods
new(node, mech, page)
click to toggle source
# File lib/mechanize/page/link.rb, line 18 def initialize(node, mech, page) @node = node @attributes = node @href = node['href'] @mech = mech @page = page @text = nil @uri = nil end
Public Instance Methods
click()
click to toggle source
Click on this link
# File lib/mechanize/page/link.rb, line 29 def click @mech.click self end
dom_class()
click to toggle source
This method is a shorthand to get a link's DOM class Common usage:
page.link_with(:dom_class => "links_exact_class")
# File lib/mechanize/page/link.rb, line 43 def dom_class node['class'] end
dom_id()
click to toggle source
This method is a shorthand to get link's DOM id. Common usage:
page.link_with(:dom_id => "links_exact_id")
# File lib/mechanize/page/link.rb, line 36 def dom_id node['id'] end
noreferrer?()
click to toggle source
Test if this link should not be traced.
# File lib/mechanize/page/link.rb, line 67 def noreferrer? rel?('noreferrer') end
rel()
click to toggle source
A list of words in the rel attribute, all lower-cased.
# File lib/mechanize/page/link.rb, line 57 def rel @rel ||= (val = attributes['rel']) ? val.downcase.split(' ') : [] end
rel?(kind)
click to toggle source
Test if the rel attribute includes kind
.
# File lib/mechanize/page/link.rb, line 62 def rel? kind rel.include? kind end
resolved_uri()
click to toggle source
A fully resolved URI for the href for this link.
# File lib/mechanize/page/link.rb, line 103 def resolved_uri @mech.resolve uri end
text()
click to toggle source
The text content of this link
# File lib/mechanize/page/link.rb, line 72 def text return @text if @text @text = @node.inner_text # If there is no text, try to find an image and use it's alt text if (@text.nil? or @text.empty?) and imgs = @node.search('img') then @text = imgs.map do |e| e['alt'] end.join end @text end
Also aliased as: to_s
uri()
click to toggle source
A URI for the href for this link. The link is first parsed as a raw link. If that fails parsing an escaped link is attepmted.
# File lib/mechanize/page/link.rb, line 92 def uri @uri ||= if @href then begin URI.parse @href rescue URI::InvalidURIError URI.parse WEBrick::HTTPUtils.escape @href end end end