提问人:Dhrumil Soni 提问时间:4/18/2023 最后编辑:Dhrumil Soni 更新时间:4/19/2023 访问量:363
如何使用 webdriverIO 为 Web 自动化启动特定的 chrome 配置文件?
How to launch specific chrome profile for Web automation using webdriverIO?
问:
如何使用 webdriverIO 为 Web 自动化启动特定的 chrome 配置文件?
要求:我的网站是使用“使用Google选项登录”启动的,因此我想通过自动化启动它,并已将配置文件存储在chrome浏览器中。因此,它将绕过登录并直接在应用程序内启动。
工具:使用 JavaScript 的 WebDriverIO Web 自动化
框架:摩卡
登录.spec.js文件:
const { Options } = require('webdriverio/build/ChromeOptions');
const { remote } = require('webdriverio');
const options = new Options();
options.addArguments("user-data-dir=/Users/dhrumilsoni/Library/Application Support/Google/Chrome/");
options.addArguments("--profile-directory=Profile 2");
options.addArguments("--start-maximized");
describe('App Admin Portal', () => {
let browser;
before(async () => {
browser = await remote({
capabilities: {
browserName: 'chrome',
'goog:chromeOptions': {
args: options.args,
},
},
});
await new Promise(resolve => setTimeout(resolve, 5000));
});
beforeEach(async () => {
// Wait for the browser to load the URL before each test case
await browser.url('https://google.com');
});
afterEach(async () => {
await browser.deleteSession();
});
it.only('login title verification',async () => {
browser.pause(3000);
try {
const title = await browser.getTitle();
expect(title).toEqual("TL");
} catch (error) {
console.error(error);
}
});
});
但是我在运行“npx wdio”命令后出现错误。
Error: Unable to load spec files quite likely because they rely on `browser` object that is not fully initialised.`browser` object has only `capabilities` and some flags like `isMobile`.
答:
0赞
Dhrumil Soni
4/19/2023
#1
工具:使用 JavaScript 的 WebDriverIO Web 自动化
框架:摩卡
是的,可以使用 webdriverIO 启动特定的 chrome 配置文件。
根据我的项目要求,我想每次都绕过登录。因此,我创建了 chrome 配置文件并存储了我的 URL 和凭据,以确保它在我启动应用程序时自动登录到应用程序。
解决方法:
wdio.conf.js
capabilities: [{
maxInstances: 5,
browserName: 'chrome',
'goog:chromeOptions': {
args:[
'disable-web-security',
'allow-running-insecure-content',
'user-data-dir=/Users/dhrumilsoni/Library/Application Support/Google/Chrome/',
'profile-directory=Profile 27'
]},
在您的测试中,
describe("Master Test Plan", ()=>{
before(async ()=>{
await browser.url('https://google.com');
await browser.pause(5000);
})
after(async () => {
await browser.deleteSession();
});
it("Chrome profile launch to bypass login screen", async ()=>{
try {
const title = await browser.getTitle();
expect(title).toEqual("XXXX");
} catch (error) {
console.error(error);
}
});
});
评论