在没有名字的casperjs上提交表单

时间:2014-09-11 01:57:28

标签: javascript css-selectors casperjs selectors-api

这是我要提交的表单

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

在casperjs文档中的示例代码中,提交表单是通过以下方式:

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

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

1 个答案:

答案 0 :(得分:2)

您需要使用一些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();
相关问题