【问题标题】:CasperJS fill adwords keyword plannerCasperJS 填充 adwords 关键字规划器
【发布时间】:2014-01-22 10:51:37
【问题描述】:

我无法在关键字规划器中填写 adwords textarea。

  1. 我正在登录谷歌帐户:好的
  2. 我去关键字规划师:好的
  3. 点击显示菜单:好的
  4. 填充文本区域:没有???
  5. 点击按钮:确定

我能做什么?

部分代码:

  casper.thenEvaluate(function () {
    document.querySelector('#gwt-debug-keywords-text-area').textContent = "test";
});

完整代码:

// requires
var utils = require('utils');
var casper = require('casper').create({
verbose: true,
logLevel: "debug",
waitTimeout: 5000
});

var email = 'email';
var passwd = 'passwd';

//login
casper.start('http://adwords.google.com');

casper.thenEvaluate(function login(email, passwd) {
    document.querySelector('#Email').setAttribute('value', email);
    document.querySelector('#Passwd').setAttribute('value', passwd);
    document.querySelector('form').submit();
}, {email:email, passwd:passwd});

//go to keyword planner
casper.thenOpen('https://adwords.google.com/ko/KeywordPlanner/Home?');

casper.wait(1000, function() {});

casper.thenEvaluate(function () {
    var element = document.querySelector( '#gwt-debug-splash-panel-search-selection-input' );
    var event = document.createEvent( 'MouseEvents' );
    event.initMouseEvent( 'click', true, true, window, 1, 0, 0 );
    element.dispatchEvent( event );
});
//HERE
casper.thenEvaluate(function () {
    document.querySelector('#gwt-debug-keywords-text-area').textContent = "test";
});

casper.thenEvaluate(function () {   
    var element = document.querySelector( '#gwt-debug-search-button-content' );
    var event = document.createEvent( 'MouseEvents' );
    event.initMouseEvent( 'click', true, true, window, 1, 0, 0 );
    element.dispatchEvent( event ); 
});

casper.then(function() {
    this.capture('exit.png');
    });

casper.run();

查看截图:http://www.hostingpics.net/viewer.php?id=939611exit.png

【问题讨论】:

  • 我只是尝试使用 javascript 控制台填写表单,而 document.querySelector('#gwt-debug-keywords-text-area').textContent = 'test';也不 document.querySelector('#gwt-debug-keywords-text-area').value = 'test';显示修改。也许谷歌保护了这个区域或者必须触发一个事件。

标签: javascript phantomjs casperjs


【解决方案1】:

问题在于,您假设 Google 与他们的 HTML 配合得很好,并且“#gwt-debug-keywords-text-area”ID 是唯一的……但事实并非如此。尝试使用浏览器的控制台:

document.querySelectorAll('#gwt-debug-keywords-text-area')

您会看到有多个具有相同 ID 的元素...您会发现其中一个就是您要查找的那个。

【讨论】:

    【解决方案2】:

    我从来没有成功地使用 jQuery 和 Casperjs 将 textarea 发送到屏幕,我很想看到这个工作,因为我会使用它。相反,我只使用Casper.sendKeys

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-20
      • 1970-01-01
      • 2013-11-01
      • 2013-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多