mon*_*ish 5 javascript jasmine angularjs selenium-webdriver protractor
我试图点击按钮检查弹出的Facebook登录开放.
Error : Object [object Object] has no method 'getWindowHandle'.
Run Code Online (Sandbox Code Playgroud)
代码段生成错误:
describe('Tests', function() {
var ptor;
var handlePromise;
var util = require('util');
beforeEach(function() {
ptor = protractor.getInstance();
handlePromise = ptor.getAllWindowHandles();
var handlesDone = false;
ptor.get('/SiteB_Upgrade_Device/app/index.html#/Recommendations#page');
ptor.findElement(by.id('fb')).click();
ptor.ignoreSynchronization = true;
});
describe('login', function() {
return it('should switch to popUp\'s handle', function() {
handlePromise.then(function(handles) {
var popUpHandle = handles[0];
var handle = browser.driver.switchTo().window(popUpHandle).getWindowHandle();
expect(handle).toEqual(popUpHandle);
});
},30000);
});
});
Run Code Online (Sandbox Code Playgroud)
以下是我目前用于浏览弹出窗口/标签的内容:
// do stuff that will trigger the popup
// ...
browser.getAllWindowHandles().then(function (handles) {
// switch to the popup
browser.switchTo().window(handles[1]);
// make sure the popup is now focused
expect(browser.getCurrentUrl()).toEqual('popup/url');
// do stuff with the popup
// ...
// go back to the main window
browser.switchTo().window(handles[0]);
// make sure we are back to the main window
expect(browser.getCurrentUrl()).toEqual('original/url');
});
Run Code Online (Sandbox Code Playgroud)
你只需要确保你的弹出窗口真的是一个新窗口而不是某种弹出窗口(在这种情况下你可以用css选择器来定位它).
更改标签/弹出窗口时要记住的另一件事是目标页面可能没有加载angularjs,这将渲染量角器用法.如果你面对这种情况,你可以简单地browser.driver
用作browser
导航非角度页面的替代品.
希望这可以帮助.
归档时间: |
|
查看次数: |
3210 次 |
最近记录: |