Casperjs CasperError:无法在不存在的选择器上调度鼠标下移事件

Casperjs CasperError: Cannot dispatch mousedown event on nonexistent selector:

本文关键字:调度 鼠标 事件 选择器 CasperError 不存在 Casperjs      更新时间:2023-09-26

我是使用Casperjs的新手,我试图让这个脚本复制一些文本,但它无法找到搜索按钮,即使我有正确的路径。我已经能够单击脚本中的所有按钮之前,但它给出的错误行:

    casper.wait(2000, function () {
        casper.click(x('//*[@id="SRCHBTN"]'));     <----Error here
        casper.capture('CurrentScreen.png');
    });

CasperError: Cannot dispatch mousedown event on nonexistent selector:

代码如下:

var casper = require('casper').create();
var x = require('casper').selectXPath;
casper.userAgent('Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)');
casper.start('url');
casper.then(function () {
    this.sendKeys('user', 'user');
    this.sendKeys('pswd', 'pass');
    console.log('Entering Data');
});
casper.thenClick(x('//*[@id="login"]/table[1]/tbody/tr[3]/td[2]/input'), function () {
    console.log('Logging in..');
});
casper.wait(2000, function () {
    casper.click(x('//*[@id="SRCH_LINK"]/a'));
});
casper.wait(2000, function () {
    casper.click(x('//*[@id="SRCHBTN"]'));
    casper.capture('CurrentScreen.png');
});



casper.wait(4000, function () {
    casper.click(x('//*[@id="TITLE_HL$0"]'));
casper.wait(2000, function() {
    //this is pop up window section
    casper.waitForPopup(/popup'.html$/, function () {
        this.test.assertEquals(this.popups.length, 1);
    });
    // this will set the popup DOM as the main active one only for time the
    // step closure being executed
    casper.withPopup(/popup'.html$/, function () {
        this.test.assertTitle('Job Details - Google Chrome');
        var targetText = casper.fetchText('#DESCR');
        console.log(targetText);
    });
    // next step will automatically revert the current page to the initial one
    casper.then(function () {
        this.test.assertTitle('Main page title');
    });


    });
});

casper.run();

如果期望元素的存在依赖于异步调用,则等待2秒将不能保证调用完成。你应该使用waitForSelector()函数来代替wait():

casper.waitForSelector(x('//*[@id="SRCHBTN"]'), function () {
    casper.click(x('//*[@id="SRCHBTN"]'));
    casper.capture('CurrentScreen.png'); });
});