ai didi

ruby - 单击与 Mechanize 的 xpath 链接

转载 作者:数据小太阳 更新时间:2023-10-29 07:42:06 24 4
gpt4 key购买 nike

我想单击我使用 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

问题是nokogiri元素没有点击功能。

我无法读取 href (URL) 并发送获取请求,因为该链接定义了 onclick 函数(没有 href 属性)。

如果那不可能,有什么替代方案?

最佳答案

  1. 使用 page.at而不是 page.search当您试图仅查找一个元素时。

  2. 您可以使用 CSS 选择器语法使您的选择器更简单(更短):

    next_page = page.at('div.grid-dataset-pager > span.currentPage + a[class^="page"]')
  3. 如果您有 Nokogiri 元素、页面和 mechanize 对象来提供给构造函数,您可以构建自己的 Link 实例:

    next_link = Mechanize::Page::Link.new( next_page, mech, page )
    next_link.click
  4. 但是,您可能不需要它,因为 Mechanize#click让您提供一个字符串,其中包含要点击的 anchor /按钮的文本。

    # Assuming this link text is unique on the page, which I suspect it is
    mech.click next_page.text
  5. 在完全重新阅读问题后进行编辑:但是,这些都不会帮助您,因为Mechanize 不是网络浏览器!它确实有帮助没有 JavaScript 引擎,因此不会(不能)为您执行 onclick。为此,您需要使用 Ruby 来控制真正的网络浏览器,例如使用 WatirSeleniumCelerity等等。

关于ruby - 单击与 Mechanize 的 xpath 链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11648278/

24 4 0
文章推荐: ios - 如何在 iOS 上的 View 之间进行展开/收缩转换?
文章推荐: ruby-on-rails - rails : how to exclude one item from an "each" method
文章推荐: ruby - 停止运行 cucumber 测试功能
文章推荐: ios - 您的帐户没有创建 iOS 分发证书的权限
数据小太阳
个人简介

我是一名优秀的程序员,十分优秀!

滴滴打车优惠券免费领取
滴滴打车优惠券
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com