【问题标题】:How to click brower prompt in casperjs如何在 casperjs 中单击浏览器提示
【发布时间】:2018-04-20 19:15:07
【问题描述】:

我正在创建一个自动化脚本来进行测试。因此,当我的脚本尝试通过单击“注销”来注销时,它会提示确认窗口,脚本必须在该窗口中选择“确定”

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

【问题讨论】:

    标签: phantomjs casperjs confirm browser-automation


    【解决方案1】:

    你的三元运算是倒退的。

    您可以更改以下行:

    return msg === '...' ? false : true;
    

    ...到:

    return msg === '...' ? true : false;
    

    ...但是由于不需要三元运算,所以可以简单地写:

    return msg === '...';
    

    完整示例:

    考虑以下 HTML 容器:

    <div id="result"></div>
    

    现在,在同一页面上考虑以下 JavaScript 代码:

    var result = document.getElementById('result');
    
    if (confirm('Are you sure?')) {
      result.textContent = 'Success!';
    }
    

    您可以使用以下 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),但我不确定即使使用错误的逻辑我是否能够从门户网站注销并导航到主页。再次感谢,我将再次查看我的代码以找出原因。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-10
    • 2015-02-28
    • 2012-08-24
    相关资源
    最近更新 更多