我试图在套件中运行不同的规格,如下所示:
suites:{
homepage: '../Phonebook/specs/Navigate_URL.js',
Login:['../Phonebook/specs/Login_Valid.js',
'../Phonebook/specs/Validate_Home.js'],
search: '../Phonebook/specs/SearchText.js',
logout: '../Phonebook/specs/Logout.js',
},
当我使用specs单独运行它们时,所有这些都运行得很好并且没有时间问题。我试图立即运行整个套件,它运行得非常好,现在,它表明再次出现了计时问题。我在每个脚本中都包含了browser.sleep(),以确保所有脚本都等到下一个脚本执行完毕。 getPageTimeout:,allScriptsTimeout:也被使用。有没有办法或任何一般方法来避免这个问题?
答案 0 :(得分:1)
由于这是一个非角度应用程序,Protractor
不会像使用Angular那样与它同步。测试不会那么简单,并且流程不会像测试中的Angular应用程序那样清晰自然。
为了避免任何时间问题,您需要始终“在跳跃之前”:使用browser.wait()
和一组内置Expected Conditions。例如,在进行搜索之前,请等待搜索输入可见:
var EC = protractor.ExpectedConditions,
searchInput = element(by.id("search"));
browser.wait(EC.visibilityOf(searchInput), 5000, "Search input has not become visible");
答案 1 :(得分:0)
我明白了,虽然我认为这只是一个临时解决方案,但是在下一个脚本执行之前我在每个脚本中都包含了browser.sleep,它暂时有效。