Phantom.js Webdriver.io Error: SyntaxError: DOM Exception 12

Phantom.js Webdriver.io Error: SyntaxError: DOM Exception 12

本文关键字:SyntaxError DOM Exception Error js Webdriver io Phantom      更新时间:2023-09-26

我们正在用webdriver做一些测试。Io和phantom.js。下面的工作很好,给我一个元素列表:

return client
    .url(config.host)
    .waitForVisible('#myvenuelist', 2000)
    .click('#myvenuelist')
    .elements('li.venue')
    .then(function(venues)
    {
        // Make sure there is at least one device
        // Could do a scan in the before and check the size
        venues.value.length.should.be.at.least(venueList.length);
        done();
    });

但是我继续我的下一个测试,它做了同样的事情:

return client
    .url(config.host)
    .waitForVisible('#myvenuelist', 2000)
    .click('#myvenuelist')
    .waitForVisible("li.venue[data-id=" + allVenues[0].venue_id + "]", 5000)
    .click("li.venue[data-id=" + allVenues[0].venue_id + "] a[class='btn primary']")
    .waitForVisible('a[class="tab beacons"]', 2000)
    .click('a[class="tab beacons"]')
    .waitForVisible('a[class="tab beacons active"]', 2000)
    .elements("a[class='add-monitor btn primary']")
    .then(function(deviceList)
    {
        deviceList.value.length.should.be.at.least(1);
        done();
    });

我得到deviceList对象。如果我检查它,value成员是一个数组,正如预期的那样。但是,当我第二次尝试访问该数组时,即使只是将它赋值给另一个变量,我也会得到以下错误:

CommandError: Promise was fulfilled but got rejected with the following reason: Error: SyntaxError: DOM Exception 12 

这快把我逼疯了。周围有DOM Exception 12错误的报告,但它们似乎并不适用于我正在做的事情,其中许多是指旧版本的Phantom.js。

试试这个:

let venueId = allVenues[0].venue_id;
return client
    .url(config.host)
    .waitForVisible('#myvenuelist', 2000)
    .click('#myvenuelist')
    .waitForVisible(`li.venue[data-id={venueId}]`, 5000)
    .click(`li.venue[data-id={venueId}] a.btn.primary`)
    .waitForVisible('a.tab.beacons', 2000)
    .click('a.tab.beacons')
    .waitForVisible('a.tab.beacons.active', 2000)
    .elements("a.add-monitor.btn.primary")
    .then( deviceList => deviceList.value.length.should.be.at.least(1) );