我想点击网站上的元素,然后截取屏幕截图,如何在PahantomJS中进行操作?
这是我的HTML:
<html>
<head>
<title>list</title>
</head>
<body class="directory">
<input id="search" type="text" placeholder="Search" autocomplete="off">
<div id="wrapper">
<h1> / </h1>
<ul id="files" class="view-tiles">
<li><a href="/build" class="" title="build"><span class="name">build</span><span class="size">0</span><span class="date">Wed Oct 12 2016 </span></a></li>
</ul>
</div>
</body>
</html>
那就是我试过的
var page = require('webpage').create();
page.onError = function(msg, trace) {
return;
};
page.open("http://localhost:9001/", function(status){
if (status !== 'success') {
console.log('Unable to load the url!');
// phantom.exit();
} else {
console.log("click");
page.render('1.png');
document.getElementById("build").click();
page.render('2.png');
page.onConsoleMessage = function(msg, lineNum, sourceId) {
console.log('CONSOLE: ' + msg + ' (from line #' + lineNum + ' in "' + sourceId + '")');
if (msg === "finished") {
console.log("click");
}
};
// phantom.exit();
}
// phantom.exit();
});
如何点击它然后截取屏幕截图以确保我转到下一页。
答案 0 :(得分:1)
如果要访问由phantomjs加载的页面的dom / window,则需要将click
代码包含在page.evaluate
函数中。它将被执行同步
所以你的代码看起来像这样
console.log("click");
page.render('1.png');
page.evaluate(function(selector){
return document.getElementById(selector).click();
}, 'build');
page.render('2.png');