请解释一下,这三种不同的代码有什么不同?它们都工作得很好。
或者第一个和第二个变体是相同的?第三个呢:我读到在代码中最好避免使用"browser.sleep()“,因为它会导致测试工作中的不稳定性。是真的吗?
帮我理解一下。
谢谢。
var MenuSigninButton = $('button.btn');
var LoginDropdownForm = element(by.id('loginForm'));
MenuSigninButton.click();
browser.wait(EC.visibilityOf(LoginDropdownForm));和
MenuSigninButton.click();
browser.wait (function () {
return LoginDropdownForm.isDisplayed()
});和
MenuSigninButton.click();
browser.sleep(3000);
expect(LoginDropdownForm.isDisplayed()).toBe(true);发布于 2018-11-07 23:50:27
首先,是的,只要能使用,就应该避免使用driver.sleep()。为什么?
好吧,如果你开始使用,那是因为你在等待一些东西出现在屏幕上,以便继续执行测试。嗯,你不知道这个“东西”会持续多久才会出现。
第二个问题:
当您使用browser.wait()时,您必须传递一个条件来停止等待。它可以是将来解决的承诺(示例中没有涉及),可以是条件(第一个示例),也可以是一个必须执行的函数(第二个示例)。
的第三个示例略有不同:
使用expect方法时,您显式编写了一个条件,该条件必须通过才能通过测试。因此,expect不会结束,直到它内部的Promise得到解决。
https://stackoverflow.com/questions/53190170
复制相似问题