gpt4 book ai didi

javascript - Protractor :在页面中查找文本

转载 作者:行者123 更新时间:2023-11-29 21:36:24 26 4
gpt4 key购买 nike

我创建了这个步骤定义来检查给定的文本是否存在于网页中。代码工作正常,但有时,特别是当我查找长文本时,即使文本存在于页面中,我也会收到错误消息。

代码是这样的:

this.Then(/^The text "([^"]*)" exists in page$/, function(myText, callback){

browser.sleep(10000);

var selectedElement = element(by.xpath("//*[. = '" + myText + "']"));

expect(selectedElement.isPresent()).to.eventually.equal(true, "This text is not present in page").and.notify(callback);

});

基本上我做了三件事:

  1. 我等待 10 秒以确保 DOM 的所有元素都已加载。
  2. 我搜索包含我要查找的文本的元素(div、p、标签或其他)。
  3. 我检查该元素是否存在,否则出现错误。

你能告诉我是否有更好的方法吗?在步骤定义的开头使用 browser.sleep() 等待 DOM 加载是否正确?

重要提示:我没有使用 Angularjs

提前谢谢你。

最佳答案

问题很可能是因为您使用的是严格的文本匹配,但所需文本周围可能有额外的空格或换行符。你可以试试 contains()如果适用:

element(by.xpath("//*[contains(., '" + myText + "')]"));

或者,使用 normalize-space() :

element(by.xpath("//*[text()[normalize-space() = '" + myText + "']]"));

附带说明一下,使用 browser.sleep() 等待页面加载不太可靠,应该避免。有更好的方法 - browser.wait()Expected Conditions .

关于javascript - Protractor :在页面中查找文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34732410/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com