3

我正在使用WebdriverIOselenium-standalone编写自动化测试来验证我们用户界面的各个部分是否正常工作。

我需要验证页面上不存在元素。例如,我们的系统允许员工跟踪我们向客户推荐的各种类型的资源。如果工作人员不小心添加了错误的资源,他们可以将其删除,我想验证该资源是否实际被删除并且不在页面上。

WebdriverIO 有一个.isExisting()属性,但无法检查某些东西是否不存在(或不可见/不存在)。我也可以使用Chai断言来解决这个问题,但还没有深入研究这个世界。

这是我的代码片段:

it('I can delete a resource from a need', function() {
    return driver
    .moveToObject('span.ccx-tasklist-task') // Hover mouse over resource
    .click('div.referral-controls a.btn.dropdown-standalone') // Click Resource drop-down
    .click('div.referral-controls.ccx-dropdown-menu-selected li > a') // Delete Resource
    .pause(2000);
    // Need to Verify that resource was deleted here

有什么建议吗?如果您需要更多信息,请与我们联系。

4

4 回答 4

5

您可以waitForExistreverse选项设置为true.

.waitForExist( '[id$=OpenNeedsPanel] div.commodities', 500, true )
于 2015-05-21T09:42:08.910 回答
1

I was able to verify that an element didn't exist on the page like this:

.isExisting('[id$=OpenNeedsPanel] div.commodities').should.eventually.equal(false);

于 2015-03-26T15:46:15.163 回答
0

您可以简单地使用下面提到的代码行

int temp=driver.findElements(By.xpath("your x-path expression")).size();

你甚至可以用你的其他定位器替换你的 xpath 定位器,比如 id、class、link 等。

现在,如果 temp>0 的值,这意味着,你的元素存在

于 2015-03-25T19:09:52.520 回答
0

你可以参考https://webdriver.io/docs/api/element/waitForExist.html

等待一个元素在 DOM 中出现提供的毫秒数。如果选择器至少匹配 DOM 中存在的一个元素,则返回 true,否则抛出错误。如果反向标志为真,则如果选择器不匹配任何元素,则命令将改为返回真。

resource.waitForExist(1000, true);

其中 1000 是以毫秒为单位的超时。

于 2020-05-12T15:44:36.970 回答