相关疑难解决方法(0)

如何使用PhantomJS提交表格

我正在尝试使用phantomJS(这是一个很棒的工具btw!)为我有登录凭据的页面提交表单,然后将目标页面的内容输出到stdout.我能够使用幻像访问表单并成功设置其值,但我不太确定提交表单和输出后续页面内容的正确语法.到目前为止我所拥有的是:

var page = new WebPage();
var url = phantom.args[0];

page.open(url, function (status) {

  if (status !== 'success') {
      console.log('Unable to access network');
  } else {

    console.log(page.evaluate(function () {

      var arr = document.getElementsByClassName("login-form");
      var i;

      for (i=0; i < arr.length; i++) {

        if (arr[i].getAttribute('method') == "POST") {
          arr[i].elements["email"].value="mylogin@somedomain.com";
          arr[i].elements["password"].value="mypassword";

          // This part doesn't seem to work. It returns the content
          // of the current page, not the content of the page after 
          // the submit has been executed. Am I …
Run Code Online (Sandbox Code Playgroud)

javascript forms post phantomjs

161
推荐指数
4
解决办法
12万
查看次数

Wordpress上传插件表单无法在无头浏览器中激活

我正在开发一个小项目,PhamtomJS将登录我的网站并上传一个插件.我几乎拥有它,除了一个奇怪的问题.尽管file.upload我的代码部分工作正常,但"立即安装"按钮仍处于禁用状态.这是Phantom渲染的图片:

截图

如您所见,该按钮仍处于禁用状态.因此,当我尝试使用该getElementById()方法单击它时,它将无法工作.如果我尝试通过以下方式提交表单,它也不会起作用:

document.querySelector('form[action*="/wp-admin/update.php?action=upload-plugin"]').submit()
Run Code Online (Sandbox Code Playgroud)

我也尝试手动启用按钮,然后通过Javascript单击它,但这也没有用.有任何想法吗?

编辑 当试图拉出按钮的外部HTML时,我输入以下内容console:

console.log(document.querySelector('#install-plugin-submit').outerHTML)
Run Code Online (Sandbox Code Playgroud)

此代码的结果如下:

<input type="submit" name="install-plugin-submit" id="install-plugin-submit" class="button" value="Install Now">
Run Code Online (Sandbox Code Playgroud)

javascript wordpress phantomjs

15
推荐指数
1
解决办法
319
查看次数

标签 统计

javascript ×2

phantomjs ×2

forms ×1

post ×1

wordpress ×1