【发布时间】:2019-02-11 13:53:20
【问题描述】:
所以我在 react 项目中使用 selenium-webdriver 运行 selenium 测试。每次我运行测试时,它都会打开一个新的 chrome 窗口,这非常令人恼火,因为我最终打开了一百万个 chrome 窗口。是否可以强制 selenium 使用已经打开的浏览器窗口?
编辑: 下面是一个简单的测试代码示例。
const webdriver = require('selenium-webdriver');
const { By, Key } = webdriver
describe('Dashboard page', () => {
it('renders correctly', async() => {
var chromeCapabilities = webdriver.Capabilities.chrome();
var chromeOptions = {
//'args': ['--headless']
};
chromeCapabilities.set('chromeOptions', chromeOptions);
const driver = new webdriver.Builder().withCapabilities(chromeCapabilities).build();
await driver.get('http://localhost:3000/dashboard')
await driver.getTitle().then((title) => {
expect(title).toEqual("My website | Dashboard")
})
await driver.getCurrentUrl().then((url) => {
expect(url).toEqual("http://localhost:3000/dashboard")
})
})
})
【问题讨论】:
-
您能否向我们展示您的代码,它启动了 chrome 并关闭了浏览器。基本上,您目前已经编写了代码,它在每次运行时都会打开一个浏览器,但您没有任何浏览器拆解。
-
对,这是有道理的。我添加了一个小代码示例。是的,我每次运行时都会打开一个新浏览器。我想知道是否有办法告诉 selenium 使用任何当前打开的浏览器窗口而不是打开一个新窗口。
-
如果您关心重用现有的浏览器会话(cookie、存储 + 可能是 chrome 配置文件)然后检查这些链接 --> stackoverflow.com/questions/8344776/… + stackoverflow.com/questions/47861813/… 因为我很确定它们可能会有所帮助这个主题(虽然使用 JavaScript)。
-
@Wazniak 谢谢!非常有用的链接
标签: selenium selenium-webdriver