【问题标题】:Submitting a form on casperjs that has no name在没有名称的 casperjs 上提交表单
【发布时间】:2014-09-11 15:06:46
【问题描述】:

这是我要提交的表单

<form action="https://www.example.com/account/registration?execution=e2s1" method="post" novalidate="novalidate">

在casperjs的文档中的示例代码中,提交表单是通过这个:

document.querySelector('form[name="f"]').submit();

如果未指定名称属性,我将如何提交表单?

【问题讨论】:

    标签: javascript css-selectors casperjs selectors-api


    【解决方案1】:

    您需要使用一些 CSS3 选择器或 XPath 选择器来执行此操作。例如,当您打开 Chrome 开发人员工具并右键单击某个元素时,您可以选择复制 CSS 路径 和 复制 XPath。 CSS 选择器可以与 querySelector 一起使用,但 XPath 选择器只能与页面上下文中的 evaluate 一起使用。

    那些复制的选择器会非常僵化,因为它们只能通过使用元素树来工作。您可以选择带有CSS attribute selector 的表单:

    document.querySelector('form[action*="account/registration?execution=e2s1"]').submit();
    

    这里我使用*=,因为您可能不希望在选择器中包含域,并且协议 (https) 可能稍后会更改。

    如果你只有一个表格,你可以使用

    document.querySelector('form').submit();
    

    或者如果您只有一个具有novalidate 属性的表单,您可以使用

    document.querySelector('form[novalidate]').submit();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-21
      • 2016-04-06
      • 2014-10-31
      • 1970-01-01
      • 2012-12-07
      相关资源
      最近更新 更多