【问题标题】:Cannot find elements, but casper.exist shows true找不到元素,但 casper.exist 显示为 true
【发布时间】:2018-03-13 09:53:49
【问题描述】:

我遇到了一个问题,即使找到了选择器,我的 CasperJS 也无法找到特定元素。

请参考我下面的代码:

var casper = require('casper').create();

casper.userAgent('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36');
casper.options.waitTimeout = 5000;
casper.options.viewportSize = {width: 1920, height: 1080};

casper.start('http://www.mega888.vip/login.html', function() {
    this.echo("Login Page Loaded.");
});

casper.waitForSelector('div.login-box-body', function() {
    if(!casper.exists('div.login-box-body')){
       this.echo("Login Box Body Exist");
    } else {
       this.echo("Login Box Body Not Exist");
    }

    if(!casper.exists('input#userName.form-control.input-lg')){
       this.echo("Username field Exist");
    } else {
       this.echo("Username field Not Exist");
    }

    if(!casper.exists('input#password.form-control.input-lg')){
       this.echo("Password field Exist");
    } else {
       this.echo("Password field Not Exist");
    }
});

casper.run();

从上面的代码中,它回显Login Box Body Not Exist,显然它已经满足条件waitForSelector('div.login-box-body')

此外,对于casper.exists('input#userName.form-control.input-lg 条件,它返回TRUE,但是当我尝试使用this.sendKeys 函数时,它说找不到元素。

谁能帮帮我?无论我如何尝试,这些代码都无济于事。

谢谢!

【问题讨论】:

    标签: phantomjs casperjs


    【解决方案1】:

    尝试将 if 语句包装在 then() 中,如下所示:

    casper.then(function(){     
    if(casper.exists('input#userName.form-control.input-lg')){
           this.echo("Username field Exist");
        } else {
           this.echo("Username field Not Exist");
        }
    });
    

    编辑:删除 !在 casper.exists() 上,所以它会返回 true 如果存在并且你想显示“用户名字段存在”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-10
      • 2021-11-30
      • 1970-01-01
      • 2020-04-25
      • 1970-01-01
      • 2019-10-06
      • 2022-12-17
      • 1970-01-01
      相关资源
      最近更新 更多