casperjs 在 ajax 调用中捕获 "loading.gif"
casperjs capturing a "loading.gif" on ajax call
我使用 casperjs 1.1 (phantom 1.9.8) 登录网站。
登录后,有旋转的throbber,我有:
<div id=throbber style='display: block'></div>
<div id=main style='display: none'></div>
主要div加载了一些动态内容,所以加载后:
<div id=throbber style='display: none'></div>
<div id=main style='display: block'>some content</div>
因为要进行点击和操作,所以我试图获取加载内容的屏幕截图,但我总是得到悸动的画面。我试图等待 30 秒,等待选择器,等待 document.getElementById('throbber').style.display == 'none' 但没有运气......
我使用 alwex/php-casperjs 包装纸(添加了一些手工添加物)所以我最后一次尝试是这样的:
$casper->click('button[type="submit"]');
$casper->waitFor("document.getElementById('throbber').style.display == 'none'"); //implicit 5000 timeout
$casper->capture($screenshot_large, time().'.png');
这个特别的尝试returns“'null'不是一个对象(评估'document.getElementById('throbber').style')”但我对任何开放备选方案。
感谢您提出任何建议或替代方案。
casperjs 被证明对此类网页不可靠。
基于 Selenium 的另一种解决方案非常有效。
我使用 casperjs 1.1 (phantom 1.9.8) 登录网站。
登录后,有旋转的throbber,我有:
<div id=throbber style='display: block'></div>
<div id=main style='display: none'></div>
主要div加载了一些动态内容,所以加载后:
<div id=throbber style='display: none'></div>
<div id=main style='display: block'>some content</div>
因为要进行点击和操作,所以我试图获取加载内容的屏幕截图,但我总是得到悸动的画面。我试图等待 30 秒,等待选择器,等待 document.getElementById('throbber').style.display == 'none' 但没有运气......
我使用 alwex/php-casperjs 包装纸(添加了一些手工添加物)所以我最后一次尝试是这样的:
$casper->click('button[type="submit"]');
$casper->waitFor("document.getElementById('throbber').style.display == 'none'"); //implicit 5000 timeout
$casper->capture($screenshot_large, time().'.png');
这个特别的尝试returns“'null'不是一个对象(评估'document.getElementById('throbber').style')”但我对任何开放备选方案。
感谢您提出任何建议或替代方案。
casperjs 被证明对此类网页不可靠。
基于 Selenium 的另一种解决方案非常有效。