我需要测试的网站需要登录。但是,您必须保持在同一窗口中以保留您的登录信息,这意味着如果您关闭此页面的窗口,则需要再次登录。这给了我一个问题:当我使用量角器来测试网站时,似乎每次我都使用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),它将打开一个新的页面,我将丢失我的登录信息。
答案 0 :(得分:1)
当你browser.driver.get()
时,它会打开一个新的窗口。这就是selenium-webdriver的工作原理。有一个issue长时间回来将webdriver实例附加到现有的浏览器窗口,现在标记为NotFeasible
。
如果您希望保持浏览器会话不变,则可以browser.driver.get()
方法before()
而不是beforeEach()
进行after
,并且可以在同一浏览器实例上运行多个测试并退出浏览器在ADBDevices () {
adb devices | awk -F"\t" '/\tdevice$/{print $1}'
}
ADBPushAndScan () {
adb -s $1 push home/test/test-automation-agent/loadondevice/. /sdcard
adb -s $1 shell am broadcast -a android.intent.action.MEDIA_MOUNTED -d file://mnt/sdcard
}
Wait () {
while [ $(jobs | grep Running | wc -l) -ne 0 ]; do sleep 1; done
}
for device in $(ADBDevices); do
ADBPushAndScan $device &
done
Wait
方法中。