有没有一种方法可以检查元素中是否有文本?我已经找到了,textToBePresentInElement
但是此函数检查指定的值,如果失败,则不会返回正确的错误。
我通过API填充元素,然后稍后将其加载,因此我希望浏览器等到元素中出现任何信息后再检查值是否正确。
另外,在EC发生故障时设法获得特定的错误消息也非常有帮助:
browser.wait(EC.textToBePresentInElement(element(by.binding('myvar')), "expected"), 5000);
第三个参数browser.wait()
是自定义错误消息:
browser.wait(EC.textToBePresentInElement(element(by.binding('myvar')), "expected"), 5000, "Text is not something I've expected");
要等待元素包含任何文本,可以编写 自定义期望条件 :
var EC = protractor.ExpectedConditions;
var anyTextToBePresentInElement = function(elementFinder) {
var hasText = function() {
return elementFinder.getText().then(function(actualText) {
return actualText;
});
};
return EC.and(EC.presenceOf(elementFinder), hasText);
};
这是用法:
browser.wait(anyTextToBePresentInElement(element(by.binding('myvar'))), 5000);
问题内容: 在Python中编写selenium测试时,我习惯于使用Explicit Waits来等待页面加载,或等待元素可见或可点击等: 这里的关键概念是提供等待的 期望条件 ,有多种类型: 等等 与使用带有硬编码时间间隔的s 相比,使用期望条件使代码更清洁,更可靠。 现在,我们正在将端到端测试基础架构转换为很多。 是否有类似的量角器,因为在或 ?如果不是,显式等待in中条件的规范方法是什么?
我正在寻求有关XPath选择器的帮助。我已经学习了XPath的基础知识,但是我很难将它们结合起来解决这个问题。 所以我有一个HTML格式的网格,包含大约30行,每行(从左到右)都有一个复选框和员工姓名。以下是行组成的一个片段: 我的目标是找到:div class=“ui grid row ng scope”data row num=“21” 到目前为止,我得到的是: 有人能帮我指一下正确的方向吗?
(我在下面给出了一个答案,但如果有人能想出一个不那么可怕的解决方案,我会保留这个问题)。
问题内容: 如果我搜索单个字符串,则效果很好: 但是我可以在下面的示例中有一个 or 语句吗? 问题答案: 在两个函数调用之间说 或使用函数使xpath不区分大小写
问题内容: 的HTML 码 问题答案: 我已经看到这个问题在过去大约一年左右的时间里弹出了几次,我想尝试编写此函数…所以就到这里了。它接受父元素,并删除每个子元素的textContent,直到剩下的是textNode为止。我已经在您的HTML上对其进行了测试,并且可以正常工作。 你叫它
问题内容: 的HTML 码 问题答案: 我已经看到这个问题在过去大约一年左右的时间里弹出了几次,我想尝试编写此函数…所以就到这里了。它接受父元素,并删除每个子元素的textContent,直到剩下的是textNode为止。我已经在您的HTML上对其进行了测试,并且可以正常工作。 你叫它