E2E 测试 Protractor 问题:重定向到同一个页面中的另一个页面 window
E2E test Protractor issue: redirect to another page in the same window
我要测试的网站需要登录。但是,您必须留在同一个 window 以保留您的登录信息,这意味着如果您关闭此页面的 window,您需要重新登录。这给了我一个问题:当我使用量角器测试网站时,似乎每次我都使用 browser.get(url)。它会关闭浏览器并打开另一个进行测试,然后我丢失了登录信息。所以我无法测试我想测试的页面。任何人都可以给我一些建议,我一天都没有弄清楚。疯了!
describe('Sample List page test', function(){
beforeEach(function(){
browser.driver.get('http://localhost:8600/#/login');
browser.driver.sleep(2000);
browser.driver.findElement(by.id('google-login')).click();
});
it('should list all the items in samples',function(){
browser.get("#/osctr/sample");
expect(browser.getTitle()).toBe("Sample");
}
});
});
在上面的代码中,我无法在示例页面中获取信息,因为我使用了brower.get(url),它将打开一个新页面,我将丢失我的登录信息。
当您执行 browser.driver.get()
时,它会打开一个新的 windown。这就是 selenium-webdriver 的工作原理。很久以前就有一个 issue 打开,用于将 webdriver 实例附加到现有浏览器 window,现在标记为 NotFeasible
。
如果您想保持浏览器会话完整,您可以在 before()
方法中执行 browser.driver.get()
而不是 beforeEach()
并在同一个浏览器实例上进行多个测试并退出after
方法中的浏览器。
我要测试的网站需要登录。但是,您必须留在同一个 window 以保留您的登录信息,这意味着如果您关闭此页面的 window,您需要重新登录。这给了我一个问题:当我使用量角器测试网站时,似乎每次我都使用 browser.get(url)。它会关闭浏览器并打开另一个进行测试,然后我丢失了登录信息。所以我无法测试我想测试的页面。任何人都可以给我一些建议,我一天都没有弄清楚。疯了!
describe('Sample List page test', function(){
beforeEach(function(){
browser.driver.get('http://localhost:8600/#/login');
browser.driver.sleep(2000);
browser.driver.findElement(by.id('google-login')).click();
});
it('should list all the items in samples',function(){
browser.get("#/osctr/sample");
expect(browser.getTitle()).toBe("Sample");
}
});
});
在上面的代码中,我无法在示例页面中获取信息,因为我使用了brower.get(url),它将打开一个新页面,我将丢失我的登录信息。
当您执行 browser.driver.get()
时,它会打开一个新的 windown。这就是 selenium-webdriver 的工作原理。很久以前就有一个 issue 打开,用于将 webdriver 实例附加到现有浏览器 window,现在标记为 NotFeasible
。
如果您想保持浏览器会话完整,您可以在 before()
方法中执行 browser.driver.get()
而不是 beforeEach()
并在同一个浏览器实例上进行多个测试并退出after
方法中的浏览器。