Alj*_*jaz 3 ruby xpath mechanize nokogiri mechanize-ruby
我想点击我用xpath(nokogiri)选择的Mechanize的链接.
怎么可能?
next_page = page.search "//div[@class='grid-dataset-pager']/span[@class='currentPage']/following-sibling::a[starts-with(@class, 'page')][1]"
next_page.click
Run Code Online (Sandbox Code Playgroud)
问题是nokogiri元素没有点击功能.
我无法读取href(URL)并发送get请求,因为链接已定义onclick函数(无href属性).
如果那是不可能的,有哪些替代方案?
Phr*_*ogz 10
当您尝试仅查找一个元素时使用page.at而不是page.search.
您可以使用CSS选择器语法使选择器更简单(更短):
next_page = page.at('div.grid-dataset-pager > span.currentPage + a[class^="page"]')
Run Code Online (Sandbox Code Playgroud)Link如果你有Nokogiri元素,page和mechanize对象来提供构造函数,你可以构建自己的实例:
next_link = Mechanize::Page::Link.new( next_page, mech, page )
next_link.click
Run Code Online (Sandbox Code Playgroud)但是,您可能不需要它,因为Mechanize#click您可以提供一个字符串,其中包含要单击的锚点/按钮的文本.
# Assuming this link text is unique on the page, which I suspect it is
mech.click next_page.text
Run Code Online (Sandbox Code Playgroud)完全重新阅读问题后进行编辑:但是,这一切都不会对您有所帮助,因为Mechanize不是Web浏览器!它没有JavaScript引擎,因此不会(不能)onclick为您执行.为此,您需要使用Ruby来控制真实的Web浏览器,例如使用Watir或Selenium或Celerity等.
| 归档时间: |
|
| 查看次数: |
4180 次 |
| 最近记录: |