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();