selenium - 遍历不同包装器中的元素失败
问题描述
表单中有多个元素,需要填写其中的 5 个。如果没有填写,这些字段会亮起红色并变为(All the same class name)。1 个元素在一个包装器中,2 个元素是表单的子元素,另外 2 个元素在不同的包装器中,因此使用 nth-child() 进行迭代无法正常工作。我有 errorData 数组,我在其中存储这些字段的文本值。问题似乎在 var elementCss = '.error'; 因为它似乎只需要第一个元素的值。但我不知道如何查看我发现的所有错误对象..
.error 的第一个元素的一切都很好,但我需要从数组中检查它们。
var errorData = ['Client', 'Project name', 'Project code', 'Project stream', 'Project service line'];
iterateForm: function() {
return this
.waitForElementVisible('.error', load_speed)
.api.elements('css selector', '.error',function (elements) {
for (i = 0; i < elements.value.length; i++) {
var elementCss = '.error';
this.assert.containsText(elementCss, errorData[i]);
}
});
}
Element <.error> was visible after 1350 milliseconds.
✔ Testing if element <.error> contains text: "Client".
✖ Testing if element <.error> contains text: "Project name". - expected "Project name" but got: "Client"
解决方案
推荐阅读
- pandas - 在熊猫中根据日期时间和今天的日期创建一个新列
- python - “正常” python 对象会自动成为张量吗?例如 "a" 或 1
- java - 我在 Java 中遇到三个错误,但我不知道如何修复它们
- django - 留在表单提交的同一选项卡中但显示新内容(django)
- java - 单击画布后 KeyListener 停止工作
- c++ - 递归包含模板文件无法编译
- c# - c# .net mysql - 在百万行表中查找更新行的最佳方法
- javascript - JSON.parse(e.data) - websocket 的 onmessage - ReferenceError: e is not defined / 'data' of undefined / WebSocket 已经处于 CLOSING 或 CLOSED 状态
- c++ - 尝试使用 std::vector 时出现静态断言失败错误
- docker - Docker compose 支持“附加到 Traefik”