无法点击td元素

时间:2012-07-21 16:00:09

标签: ruby mechanize

我正在尝试使用Ruby和Mechanize从网站http://www.radiojavan.com/mp3s/mp3/Aamin-Sarbaz下载歌曲。有一个'下载MP3',但当我检查它时,它不是链接,而是td。

agent = Mechanize.new
agent.pluggable_parser.default = Mechanize::FileSaver
download_page = agent.get('http://www.radiojavan.com/mp3s/mp3/Aamin-Sarbaz')

当我在浏览器中导航时,我可以点击它的链接。 但在代码中这是元素。如何点击这个td元素?

如果我尝试:

download_page.search('div#download_mp3 table tr td')[1].click.save_as 'proba.mp3'

它会引发错误: <top (required)>': undefined method点击'for#(NoMethodError)     来自-e:1:load' from -e:1:in'

2 个答案:

答案 0 :(得分:1)

我要给出的一个建议是下载firerbug,然后使用html部分检查td元素右键单击一个副本Xpath,它会给你这样的东西:

/html/body/div[4]/div[2]/div/div[2]/div/table/tbody/tr/td/div/a[2] 
希望这将是你所需要的。

答案 1 :(得分:1)

您无法点击&#39;一个td,部分是因为没有href属性。因为下载是使用javascript处理的,所以您无法通过机械化轻松获得下载。