使用webdriver和selenium验证元素是否不存在
Verify an element is not existing using webdriver and selenium
我正在使用WebdriverIO和selenium-standalone
编写自动化测试,以验证用户界面的各个部分是否正常工作。
我需要验证页面上是否不存在元素。例如,我们的系统允许工作人员跟踪我们向客户介绍的各种类型的资源。如果工作人员意外添加了错误的资源,他们可以删除它,我想验证该资源是否已被实际删除,并且不在页面上。
WebdriverIO具有.isExisting()
属性,但无法检查某个内容是否不存在(或不可见/不存在)。我也可以用柴的断言来弄清楚这一点,但我还没有深入研究这个世界。
以下是我的代码片段:
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
有什么建议吗?如果你需要更多信息,请告诉我。
您可以在reverse
选项设置为true
的情况下使用waitForExist
。
.waitForExist( '[id$=OpenNeedsPanel] div.commodities', 500, true )
我能够验证页面上不存在这样的元素:
.isExisting('[id$=OpenNeedsPanel] div.commodities').should.eventually.equal(false);
您可以简单地使用下面提到的代码行
int temp=driver.findElements(By.xpath("your x-path expression")).size();
您甚至可以将您的xpath定位器替换为其他定位器,如id、类、链接等。
现在,如果temp的值>0,这意味着您的元素存在
您可以参考https://webdriver.io/docs/api/element/waitForExist.html
等待元素在DOM中出现所提供的毫秒数。如果选择器至少与DOM中存在的一个元素匹配,则返回true,否则将引发错误。如果reverse标志为true,那么如果选择器与任何元素都不匹配,则命令将返回true。
resource.waitForExist(1000, true);
其中1000是以毫秒为单位的超时。
相关文章:
- javascript数组元素是否知道其封闭数组
- 如何检查元素是否在iframe中
- 检查元素是否将状态从隐藏更改为可见
- 确定元素是否存在
- 消隐数组元素是否生成自己的属性
- 检查一个元素是否有一个类与另一个类总是返回true
- 如何检查日期选择器和时间选择器元素是否使用JQuery/Javascript设置
- 如何查找具有该ID的元素是否存在
- 检查元素是否已单击或hasClass
- 使用webdriver和selenium验证元素是否不存在
- 如何使用jQuery实时检查元素是否为空
- html元素是否具有内置的属性
- 检查元素是否有内容
- 使用 javascript 检查元素是否包含子标记而不是文本
- JavaScript 在 JSON 对象中移动如何判断元素是否存在
- 检查两个或多个 DOM 元素是否重叠
- 谷歌地球插件 — 如何检查带有 ID 的元素是否已经存在
- 检查元素是否悬停在上面
- DOM 元素是否可以具有其值为任意对象(而不是字符串)的属性
- 如何检查DOM元素是否已完全加载