Phantomjs 如何在casperjs中单击浏览器提示
我正在创建一个自动化脚本来进行测试。因此,当我的脚本试图通过单击“注销”来注销时,它会提示确认窗口,脚本必须在该窗口中选择“确定”Phantomjs 如何在casperjs中单击浏览器提示,phantomjs,casperjs,confirm,browser-automation,Phantomjs,Casperjs,Confirm,Browser Automation,我正在创建一个自动化脚本来进行测试。因此,当我的脚本试图通过单击“注销”来注销时,它会提示确认窗口,脚本必须在该窗口中选择“确定” Source page looks likes: <script type="text/javascript"> function logOut() { if (confirm("Are you sure you want to log out of the system?\nClick OK for Yes
Source page looks likes:
<script type="text/javascript">
function logOut() {
if (confirm("Are you sure you want to log out of the system?\nClick OK for Yes or CANCEL for No"))
location.href='ppp_logout.cfm'
}</scrip
My code to click log out and filter the confirm box.
casper.clickLabel('Log Out', 'a');
casper.echo('------$$$ Log Off button clicked', 'INFO');
casper.setFilter('page.confirm', function(msg){
return msg === "Are you sure you want to log out of the system?\nClick OK for Yes or CANCEL for No" ? false : true;
});
reference: http://docs.casperjs.org/en/1.1-beta2/events-filters.html
Allows to react on a javascript confirm() call:
casper.setFilter("page.confirm", function(msg) {
return msg === "Do you like vbscript?" ? false : true;
});
what I am doing wrong
源页面看起来像:
函数注销(){
如果(确认(“您确定要注销系统吗?\n单击“确定”表示是,或单击“取消”表示否))
location.href='ppp\u logout.cfm'
}你的三元运算是反向的。
您可以更改以下行:
return msg === '...' ? false : true;
。。。致:
return msg === '...' ? true : false;
。。。但由于不需要三元运算,您可以简单地编写:
return msg === '...';
完整示例:
考虑以下HTML容器:
<div id="result"></div>
您可以使用以下CasperJS代码来获得结果:
var casper = require('casper').create();
casper.setFilter('page.confirm', function (message) {
return message === 'Are you sure?';
});
casper.start('https://example.com/', function () {
this.echo(this.getElementInfo('#result').text); // Result: 'Success!'
});
casper.run();
非常感谢您的详细解释。我忽略了逻辑。现在我已经更新了我的代码(?true:false),但我不确定即使使用错误的逻辑,我是否能够从门户注销并导航到主页。再次感谢,我将再次查看我的代码以找出原因。
var casper = require('casper').create();
casper.setFilter('page.confirm', function (message) {
return message === 'Are you sure?';
});
casper.start('https://example.com/', function () {
this.echo(this.getElementInfo('#result').text); // Result: 'Success!'
});
casper.run();