Javascript 同步打开PhantomJS中的链接
我想知道有没有办法在PhantomJS上同步点击链接(打开链接)。必须先打开第一页,然后单击第一页上的链接转到第二页。下面是我使用setTimeout的方法:Javascript 同步打开PhantomJS中的链接,javascript,phantomjs,Javascript,Phantomjs,我想知道有没有办法在PhantomJS上同步点击链接(打开链接)。必须先打开第一页,然后单击第一页上的链接转到第二页。下面是我使用setTimeout的方法: var page = require('webpage').create(); var url = "http://domain.tld/index.html"; page.open(url, function (status) { page.render("1-home.png"); page.evaluate(fu
var page = require('webpage').create();
var url = "http://domain.tld/index.html";
page.open(url, function (status) {
page.render("1-home.png");
page.evaluate(function() {
// search for element and click it to redirect
document.getElementById("RetailUser").click();
});
// I use setTimeout to wait for firstpage to get loaded
setTimeout(function () {
// do another process on second page
}, 5000);
}
PS:我知道我可以用CasperJS完成它。但是如果可能的话,我不想使用CasperJS。单击链接总是同步的。由于JavaScript的异步特性,之后发生的事情总是异步的 有多种方法可以等待下一页:
- 使用的静态时间量
- 动态等待一个条件
- 在单击之前,通过注册到
页面加载下一页。onLoadFinished
- 等待所有未完成的请求完成(和),或
- 这四种方法的组合
页面开始。onload finished
,如果这不起作用,请转到waitFor
等待条件/选择器。如果这仍然不起作用,或者条件太难匹配,请尝试等待完成的请求,然后进行短暂的setTimeout
确认。感谢您的回复。我先试试。