如果我們在沒有--engine=slimerjs
的情況下使用casper,則casper.scrollToBottom();
和casper.page.scrollPosition = {top: scrollHeight, left: 0};
不起作用。如果我們與PhantomJS一起使用CasperJS滾動不起作用
我的意思是如果我們只使用$ casperjs file.js
它不起作用。但與$ casperjs --engine=slimerjs file.js
它工作得很好。
有什麼建議嗎? 也許我應該在命令行中使用某些東西?像--webdriver
?我試過--ssl-protocol=any
- 它也沒有幫助。或者,也許我應該包括JS文件,如page.includeJs('https://www.my-site.com/thisjsfile.min.js')
PS:我不相信,這將是有益的,但這裏是代碼:
casper.then(function() {
this.waitForSelector('#myselector', function() {
this.open('http://www.my-site.com/messages');
this.echo('Open messages Inbox');
});
})
.then(function() {
this.repeat(timesForCasperRepeat, function() {
this.wait(5000, function() {
scrollHeight = this.evaluate(function() {
return document.body.scrollHeight;
});
this.echo('Scroll Height: ' + scrollHeight);
this.scrollToBottom();
this.echo('scrolling down', 'INFO_BAR');
});
});
});
即使我改變scrollToBottom()
到:
this.page.scrollPosition = {
top: scrollHeight,
left: 0
};
我還包括Anrtjom的處理錯誤的事件,有一個link
並沒有錯誤,我有:
Error: ReferenceError: Can't find variable: ourvarname1
Error: ReferenceError: Can't find variable: jQuery
Error: ReferenceError: Can't find variable: ourvarname2
Error: ReferenceError: Can't find variable: ourvarname3
Error: TypeError: 'undefined' is not a function (evaluating 'RegExp.prototype.test.bind(/^(data|aria)-[a-z_][a-z\d_.\-]*$/)')
Console: Unsafe JavaScript attempt to access frame with URL http://www.my-site.com/messages from frame with URL http://ads.my-site.com/daisy?browser=windows_chrome&base=1&page=Mailbox&pageurl=%2fmessages&format=half_page&authid=1%2c0%2c1457605848%2c0xf290ca6243d86169%3beed7d0c7a540f963b5268452a4c95ac74793badc&cachebust=655998. Domains, protocols and ports must match.
您使用哪個PhantomJS版本?請註冊到'resource.error','page.error','remote.message'和'casper.page.onResourceTimeout'事件([Example](https://gist.github.com/artjomb/4cf43d16ce50d8674fdf#file -2_caspererrors-JS))。也許有錯誤。 –
Phantomjs 2.1.1版本 – HappyCoder888
由於您沒有提到有關該網站的任何信息(或者是否有任何錯誤),我們只能猜測問題所在。通過截圖檢查您是否在正確的頁面上。確保主體實際上是可滾動的,而不是某個祖先元素,比如div。如果您對iframe的內容感興趣,請確保您已更改爲iframe。 –