要使用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选择器不正确吗?
答案 0 :(得分:0)
如果您继续浏览该页面并运行document.querySelector('img [alt ="PhantomJS"]')
,您会看到它已经返回null
。
这是因为选择器中[
之前的空格。试试document.querySelector('img[alt="PhantomJS"]')
。
这是你的第一个问题。然后你尝试使用click
,但这不起作用,你需要发送一个点击事件。请参阅此other Stack Overflow question以获取该问题的解决方案。