Protractor TextToBePresentElementValue即使文本存在且jasmine超时也会等待

Protractor TextToBePresentElementValue即使文本存在且jasmine超时也会等待,protractor,Protractor,我有一种情况,我等待元素文本从运行变为成功,但我可以看到,当我的测试运行时,即使文本显示为成功,它仍在等待,然后发生jasmine超时错误 我不知道如何修复此问题。 属性页面: this.reportList = element.all(by.repeater("report in reportList")); this.ReportStatus = this.reportList.all(by.css('div.display-inherit')); 测试用例: brows

我有一种情况,我等待元素文本从运行变为成功,但我可以看到,当我的测试运行时,即使文本显示为成功,它仍在等待,然后发生jasmine超时错误

我不知道如何修复此问题。
属性页面:

   this.reportList = element.all(by.repeater("report in reportList"));
   this.ReportStatus = this.reportList.all(by.css('div.display-inherit'));
测试用例:

   browser.wait(EC.textToBePresentInElementValue(PropertyPage.ReportStatus , 'Successful'));

如果之前没有设置变量,而是在wait中设置整个元素,那么它是否会强制再次获取值

browser.wait(EC.textToBePresentInElementValue(element.all(by.repeater("report in reportList")).all(by.css('div.display-inherit')), 'Successful'));

另外,您的定位器“div.display-inherit”是否在页面上查找单个元素div.display-inherit?你必须确保找到准确的一个来调查它。您能用另一个定位器获取它吗?

如果您之前没有设置变量,而是等待中的整个元素,它是否强制再次获取值

browser.wait(EC.textToBePresentInElementValue(element.all(by.repeater("report in reportList")).all(by.css('div.display-inherit')), 'Successful'));

另外,您的定位器“div.display-inherit”是否在页面上查找单个元素div.display-inherit?你必须确保找到准确的一个来调查它。您能用另一个定位器获取它吗?

文本ToBePresentElement和文本ToBePresentElement值之间的差异

  • 第一个是检查元素(“#abc”)中文本的值
  • 第二个是检查元素textfield(“#myInput”)中文本的输入值
当我使用texttobepresentElementValue获取元素的文本时,我遇到了相同的错误,无法读取null的属性'indexOf'

var EC = protractor.ExpectedConditions;
// Waits for the element with id 'abc' to contain the text 'foo'.
browser.wait(EC.textToBePresentInElement($('#abc'), 'foo'), 5000);

var EC = protractor.ExpectedConditions;
// Waits for the element with id 'myInput' to contain the input 'foo'.
browser.wait(EC.textToBePresentInElementValue($('#myInput'), 'foo'), 5000);

textToBePresentElementtextToBePresentElement值之间的差异

  • 第一个是检查元素(“#abc”)中文本的值
  • 第二个是检查元素textfield(“#myInput”)中文本的输入值
当我使用texttobepresentElementValue获取元素的文本时,我遇到了相同的错误,无法读取null的属性'indexOf'

var EC = protractor.ExpectedConditions;
// Waits for the element with id 'abc' to contain the text 'foo'.
browser.wait(EC.textToBePresentInElement($('#abc'), 'foo'), 5000);

var EC = protractor.ExpectedConditions;
// Waits for the element with id 'myInput' to contain the input 'foo'.
browser.wait(EC.textToBePresentInElementValue($('#myInput'), 'foo'), 5000);

div.display-inherit
引用ng repeat中的多个元素,但如果我使用它
browser.wait(EC.texttobepresentElementValue(ReportStatus.get(0),'Successful')其给定错误
失败:无法读取null的属性'indexOf'
是否需要将“this.”添加到ReportStatus?如果你将.get(0)添加到我写的内容中,你是否也会得到null的indexOf?很抱歉我的问题中出现了混乱,我已经更新了这个问题。如果我使用
browser.wait(EC.texttobepresentElementValue(PropertyPage.ReportStatus.g‌​et(0),‘成功’)
我仍然获取
失败:无法读取null的属性'indexOf'
如果不使用PropertyPage并直接使用PropertyPage中的定位器,它会改变什么吗?只是想知道它是来自对象还是来自所使用的定位器。
div.display-inherit
指的是ng repeat中的多个元素,但如果我正在使用它
browser.wait(EC.texttobepresentElementValue(ReportStatus.get(0),“Successful”)其给定错误
失败:无法读取null的属性'indexOf'
是否需要将“this.”添加到ReportStatus?如果你将.get(0)添加到我写的内容中,你是否也会得到null的indexOf?很抱歉我的问题中出现了混乱,我已经更新了这个问题。如果我使用
browser.wait(EC.texttobepresentElementValue(PropertyPage.ReportStatus.g‌​et(0),‘成功’)
我仍然获取
失败:无法读取null的属性'indexOf'
如果不使用PropertyPage并直接使用PropertyPage中的定位器,它会改变什么吗?只是想知道它是来自对象还是来自所使用的定位器。