angular - 检查量角器中是否存在元素
问题描述
我有一个角度应用程序,用户可以根据她/他的浏览器缓存获得不同的登录屏幕(非角度)。我正在使用量角器编写端到端测试用例,我想设置这样的条件
if(this element is present)
{
click it
}
else check if this element is pressent
{
click it
}
这是我尝试过的。
browser.driver.findElements(by.id('element1')).then(function(result) {
if (result) {
browser.driver.findElement(by.id('element1')).click();
}
else {
browser.driver.findElement(by.id('element2')).sendKeys("username");
}
}
);
我的问题是,如果“if 条件”中的元素不存在,那么我会收到错误“ Failed: no such element: Unable to locate element:
”。我不希望我的测试用例失败,因为该元素可能不存在,然后它应该转到 else 块。我在stackoverflow上看到了很多问题,但没有任何帮助。我真的很感激这里的任何帮助。
更新:请注意,这是一个非角屏幕,我只能使用 browser.driver.______ api。
解决方案
你走在正确的轨道上。因为 findElements 返回一个数组,所以您只需要更改您必须更改 if (result)
的内容if (result.length>0)
。使用 FindElements,什么也没有发现不是错误。
推荐阅读
- python - 基于现有对象数量的默认命名 Python
- java - 在 android studio 中使用内容提供者插入数据
- python - 在自己的输出上重复一个 python 函数
- python - 合并数据框python列表的列表
- browser - Minio:在浏览器中渲染图像
- azure - 如何在 Azure 容器实例上托管的 sftp 中使用用户定义的权限创建具有多个文件夹的多个用户
- php - 如果列 B 的值小于 700,则 phpspreadsheet 条件格式列 A
- python - Python如何从嵌套循环中返回嵌套字典?
- sql-server - 在 SSAS 表格中使用动态行过滤器进行动态数据屏蔽
- sql - 如果结果是正数和负数,如何从多列中求和并分离到单独的列中