Phantomjs页面自动化获取TypeError:' null'

时间:2014-07-10 16:50:34

标签: javascript phantomjs

要使用PhantomJS使用JavaScript测试我尝试编写一个脚本来转到网址" http://phantomjs.org/quick-start.html"然后单击PhantomJS徽标将页面带到PhantomJS主页。我的目标是导航到一个网址并成功点击一个html元素。但是我收到了错误:

TypeError: 'null' is not an object (evaluating 'document.querySelector('img [alt
="PhantomJS"]').click')

  phantomjs://webpage.evaluate():3

  phantomjs://webpage.evaluate():5

  phantomjs://webpage.evaluate():5

这是我的代码:

var page = require('webpage').create();

page.open('http://phantomjs.org/quick-start.html', function(status) {
console.log(status);
page.render('websiteBeforeClick.png');

page.evaluate(function() {
  document.querySelector('img [alt="PhantomJS"]').click();
});    

page.render('websiteAfterClick.png');
phantom.exit();
});

我的css选择器不正确吗?

1 个答案:

答案 0 :(得分:0)

如果您继续浏览该页面并运行document.querySelector('img [alt ="PhantomJS"]'),您会看到它已经返回null

这是因为选择器中[之前的空格。试试document.querySelector('img[alt="PhantomJS"]')

这是你的第一个问题。然后你尝试使用click,但这不起作用,你需要发送一个点击事件。请参阅此other Stack Overflow question以获取该问题的解决方案。