【问题标题】:Use Submit Button with PhantomJS使用 PhantomJS 的提交按钮
【发布时间】:2017-03-13 20:21:34
【问题描述】:

对 PhantomJS 非常陌生。我使用 document.querySelector() 填写了用户名和密码,现在想提交信息。我启用了 cookie;我的问题是找到要提交的按钮。感兴趣的按钮是:

<button class="signbtn loginbtn" type="submit">Sign In</button>

这是在表单中:

<form name="loginf" method="post" action="/login">...</form>

我尝试了以下每一项都没有成功:

document.querySelector(".loginf").submit();

document.querySelector(".loginf").click();

document.querySelector("loginf").submit();

document.querySelector("loginf").click();

var form = document.getElementByClass("loginf");

form.submit();

form.click();

对于凭证,我成功使用了:

          document.querySelector("input[name='email']").value = "EMAIL";
          document.querySelector("input[name='password']").value = "PASS";

谢谢。

【问题讨论】:

    标签: jquery button phantomjs submit


    【解决方案1】:

    这是因为表单没有“loginf”类,即 name 属性的值。您可以尝试使用属性选择器:

    document.querySelector("[name=loginf]").submit();
    

    【讨论】:

    • 谢谢,这太完美了。我可能会为此再做一个 Q,但如果你有时间,这是我的下一个问题。在我评估了一个页面(输入凭据并登录)后,我想转到另一个页面。我知道我可以在 page.evaluate 之外放置另一个“page.open”,但在第一个 page.open 内,但是在此之后 cookie 似乎丢失了。无论如何要保留cookies?
    • 另一种方法是点击链接:问题但我我不知道如何从中得到。
    • 对于第一种方法,您可以做的一件事是在 page.evaluate 调用中获取 cookie,并将其存储到一个全局变量中,以便稍后在第一个 page.open 中访问它们。尝试使用page.cookiespage.addCookie 添加相关的cookies
    • 对于您提出的替代方案,您可以使用与获取名称为 loginf 的元素相同的思路。 document.querySelector("a[href=/questions]").click();
    • 到目前为止,我非常感谢您的帮助。 document.querySelector("a[href=/questions]").click(); 产生:SyntaxError: DOM Exception 12: An invalid or illegal string was specified. undefined:8 in querySelector :8 :15 然后,document.querySelector("a[href='/questions']"); 运行良好。但是,document.querySelector("a[href='/questions']").click(); 产生:TypeError: null is not an object (evaluating 'document.querySelector("a[href='/questions']").click') undefined:10 :15 是不是没有选择链接?
    猜你喜欢
    • 2016-11-20
    • 2011-06-29
    • 1970-01-01
    • 2012-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-10
    • 1970-01-01
    相关资源
    最近更新 更多