【问题标题】:WWW::Mechanize::Firefox click button in <div>WWW::Mechanize::Firefox 点击 <div> 中的按钮
【发布时间】:2013-08-07 15:32:24
【问题描述】:

我遇到了一个大问题。我有 12 个具有相同类的元素 - “评论”。在每个按钮中单击。

我需要知道如何选择(例如 12 个中的 3 个)并仅在此处单击按钮。

是否存在任何选择器或其他东西?请给我一些建议。

【问题讨论】:

    标签: perl firefox selector mechanize www-mechanize-firefox


    【解决方案1】:

    $mech->click 可以将 CSS 选择器或 XPath 查询作为参数。如果您知道要点击的按钮总是是第三个,您可以使用类似nth-of-type CSS 选择器的东西来精确定位它。

    编辑:基于 OP 的 cmets 使用 XPath 的示例(我尚未对此进行测试)。使用qq 允许在XPath 语句中进行变量插值。请注意,您必须对出现的 @ 进行反斜杠转义,因此 qq 不会将它们解释为数组:

    my $author = 'xxx';
    $mech->click({ xpath => qq(//div[\@class="com" and \@author="$author"]/button) });
    

    【讨论】:

    • 是的,我知道,但是这个按钮可以是 3 秒和 10 秒后可以是 4。所以我需要用这个按钮选择 div :( 有什么可能的方法吗?谢谢。
    • @KamilHajduk 是什么决定了您需要点击哪个按钮?
    • 看起来像这样:
      ........
      .................
      所以它由
      部分决定。你有什么想法吗?
    • 或者这个模块可能支持按作者姓名分隔
      然后单击按钮编号 1(那里唯一的一个)
    • @KamilHajduk XPath 允许您使用复杂的标准从 DOM 中选择元素。 XPath here 有一个很好的介绍。以我的编辑为例。
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签