我是Protractor的新手,在发出等待声明方面存在问题 我的代码如下:
element(by.xpath('html/body/app-root/div/app-dashboard/div/div/div[2]/div[1]/div/app-dashboard-filter/span/span/img')).click();
在执行click()操作之前,我希望量角器等待'/html/body/app-root/div/app-dashboard/div/div/div[1]/div[3]/div/div[1]/h5'
元素。这个元素在4秒内完成
搜索完INTERNET后,我尝试了以下内容:
1. browser.driver.sleep(5000);
2. browser.driver.manage().timeouts().setScriptTimeout(55000);
3. expect(element(by.xpath(/html/body/app-root/div/app-dashboard/div/div/div[1]/div[3]/div/div[1]/h5')).isPresent()).toBe(true);
4. browser.manage().timeouts().implicitlyWait(5000);
但由于一个或另一个错误,对我来说没有任何作用。请帮忙!
答案 0 :(得分:3)
您可以在脚本中实现protractor.ExpectedConditions等待。
<强>代码:强>
var EC=protractor.ExpectedConditions;
var ele=element(locator)
browser.wait(EC.visibilityOf(ele),timeout,"Custom Error Message");
更多预期条件的链接: https://github.com/angular/protractor/blob/master/lib/expectedConditions.ts
答案 1 :(得分:3)
使用能见度检查&amp; elementToBeClickable预期条件,它的工作原理。请在下面找到代码片段:
{{1}}
答案 2 :(得分:1)
你可以用两种方式做到这一点。
如果我们使用 ng-if (因为ng-if隐藏DOM中的元素),可以使用第1点
示例: - 强>
var EC=protractor.ExpectedConditions;
browser.wait(EC.presenceOf(element),timeout,"Custom Error Message");
第二点可以正常使用。
示例: - 强>
var EC=protractor.ExpectedConditions;
browser.wait(EC.visibilityOf(element),timeout,"Custom Error Message");