【发布时间】:2016-06-29 18:36:16
【问题描述】:
我正在使用量角器为非角度应用程序编写 e2e 测试,虽然有很多关于如何实现这一点的信息,但似乎有很多不同的方法,所以我有一些基本问题。
在测试非 Angular 网站时,有些人说只使用 webdriver 调用,例如“browser.driver.get()”,这样量角器就不会期望 Angular 完成页面加载等。其他回复说您可以设置 browser.ignoreSynchronization = true,并毫无问题地调用 browser.get()(这似乎是理想的解决方案,因此如果处理有角度和无角度的问题,您可以依赖一个 api 调用)。这两种方法是否等效,如果不是,请解释差异。
protractor 在处理 webdriver 或 browser.ignoreSynchronization = true 时是否仍然遵守承诺?例如,如果我进行“获取”调用,量角器会在执行下一步之前等待,直到该“获取”请求得到满足?
与 #2 相关,在处理 webdriver/non-angular 应用程序时是否必须使用 Promise 链来确保用户交互按顺序执行?例如,如果我使用 sendKeys() 输入名称然后 click() 提交信息,我是否必须将 click() 嵌套在 sendKeys().then 中?
webdriver 如何准确地知道页面的所有元素在获取请求后都准备好了(我看到的每个解决方案都涉及使用超时或依赖检查元素是否首先存在)?如果该页面具有嵌入式应用程序(例如谷歌地图)并且我想模拟用户点击“查看更大的地图”进行 e2e 测试怎么办?
【问题讨论】:
标签: javascript selenium-webdriver protractor e2e-testing