sof*_*ave 8 angularjs protractor
例如,我想测试使用AngularJS实现的两个登录用户之间的聊天功能.
测试需要验证两个或多个单独的浏览器操作集以正确的顺序发生.例如,用户A登录,用户B登录,用户A看到B登录,用户A发送用户B聊天文本,用户B接收聊天文本.用户B响应用户A.
这是可以使用量角器完成的吗?如果没有,是否有另一种方法可以自动测试多个浏览器会话工作流程?
Leo*_*cci 12
更新此功能最终添加,请参阅此处的示例用法和文档和测试,或参见下文:
browser.get('http://www.angularjs.org');
// To create a new browser with url as 'http://www.angularjs.org':
var browser2 = browser.forkNewDriverInstance(true);
// Interaction in the first browser
element(by.model(...)).click();
// Interaction in the second browser
browser2.$('.css').click();
Run Code Online (Sandbox Code Playgroud)
请注意,IE和Safari不会隔离cookie或缓存,因此除非您的selenium提供程序是始终使用SauceLabs或BrowserStack等干净会话的网格,否则不要期望能够同时在不同用户之间登录.
您可以在测试中打开其他窗口,并在这些窗口中执行操作和断言.您可以使用标准webdriverjs API执行此操作:
browser.getAllWindowHandles().then(function (handles) {
// handle of first window
var originalHandle = handles[0];
// open new window
browser.executeScript('window.open("https://angularjs.org/", "second-window")');
// switch to new window
browser.switchTo().window('second-window');
// do something within context of new window
// switch to original window
browser.switchTo().window(originalHandle);
// do something within context of original window
// closes the current window
browser.executeScript('window.close()');
});
Run Code Online (Sandbox Code Playgroud)
如果您使用会话cookie,这可能不适合您.两个窗口都可以获得相同的cookie.如果是这样,您将最终以两个窗口中的同一用户身份登录.一种解决方法是在不同的域上访问应用程序的第二个实例.例如,使用IP地址或在主机文件中设置新域.
| 归档时间: |
|
| 查看次数: |
4860 次 |
| 最近记录: |