Mục tiêu của tôi là để thực hiện PhantomJS bằng cách sử dụng:Sử dụng nhiều page.open trong Độc Script
// adding $op and $er for debugging purposes
exec('phantomjs script.js', $op, $er);
print_r($op);
echo $er;
Và sau đó bên script.js
, tôi có kế hoạch sử dụng nhiều page.open()
để chụp ảnh chụp màn hình của trang khác nhau như:
var url = 'some dynamic url goes here';
page = require('webpage').create();
page.open(url, function (status) {
console.log('opening page 1');
page.render('./slide1.png');
});
page = require('webpage').create();
page.open(url, function (status) {
console.log('opening page 2');
page.render('./slide2.png');
});
page = require('webpage').create();
page.open(url, function (status) {
console.log('opening page 3');
page.render('./slide3.png');
phantom.exit(); //<-- Exiting phantomJS only after opening all 3 pages
});
On chạy exec
, tôi nhận được đầu ra sau đây trên trang:
Array ([0] => opening page 3) 0
Kết quả là tôi chỉ nhận được ảnh chụp màn hình của trang thứ 3. Tôi không chắc tại sao PhantomJS bỏ qua các khối mã đầu tiên và thứ hai (hiển nhiên từ các thông báo thiếu là console.log()
được cho là đầu ra từ khối 1 và 2) và chỉ thực thi khối thứ ba của mã.
Tôi tìm thấy https://github.com/ariya/phantomjs/blob/master/examples/render_multi_url.js Nhưng tôi đã tìm cách triển khai nó theo cách đơn giản như cách tôi đang sử dụng hiện tại. – asprin
Có nhưng từ câu hỏi của bạn * nó không thực sự rõ ràng * nơi bạn nhấn roadblock làm điều đó. Bạn về cơ bản chỉ viết rằng "nó không hoạt động" và rằng bạn "nghĩ rằng nó nên làm việc bằng cách nào đó". Đó là khá mô tả. Vì vậy, ngay cả những người có thể biết rằng có thể không có khả năng giải mã câu hỏi của bạn theo cách biết để có câu trả lời cho câu hỏi đó. các ví dụ mã bổ sung thêm ngữ cảnh tốt, nhưng bạn cũng nên xác định chính xác những gì bạn mong đợi để làm việc với ví dụ mã của bạn. – hakre
Cập nhật câu hỏi của tôi với một số thông tin gỡ lỗi – asprin