嗨(我在palywright是新来的),
我需要/想在剧作家中找到一种方法,通过pageObjectModel在一个使用键斗篷的应用程序中登录,但我不知道如何登录。
我找到了一种没有pageObject的方法,在第一个测试中登录并在process.env.存储中保存身份验证,然后在file.spec.js中的其余测试中使用test.use({storageState:auth_storage_path});
注意:keydepeat有效(很抱歉提供此基本信息)
//tests_with_auth_store.spec.js
const {test, expect} = require('@playwright/test');
const auth_storage_path = 'storage_auth.json';
const baseUrl = 'https://myBaseUrl_xyz.com';
test('mylogin', async ({page, context}) => {
const usernameId = '[id="username"]';
const passwordId = '[id="password"]';
const idLogin = '[id="login-button"]';
const usernameValue = '*****';
const passwordValue = '*****';
//login:
await page.goto(baseUrl);
await page.fill(usernameId, usernameValue);
await page.fill(passwordId, passwordValue);
await Promise.all([
page.waitForNavigation(/*{ baseUrl: baseUrl }*/),
page.click(idLogin)
]);
process.env.STORAGE = null;
const storage = await context.storageState({ path: auth_storage_path });
process.env.STORAGE = JSON.stringify(storage);
JSON.parse(process.env.STORAGE);
});
test.describe("testDescription login via pageObjectModel", () => {
test.use({storageState: auth_storage_path});
test('i- firstTest whatever ', async ({page}) => {
await page.goto(baseUrl);
......
....
});
test('ii- secondTest whatever ', async ({page}) => {
await page.goto(baseUrl);
......
....
});
});
这个工作正常,所有测试都在test.use({storageState:auth_storage_path});可以直接跳转到basUrl。问题是,我找不到一种方法来封装测试('登录')到一个playwright pageObject(在柏树中,我们在commands.js简单的func中做到了这一点,并将授权保存到cookie中)
我的login-page.js演示:
// login-page.js
const { expect, test} = require('@playwright/test');
const baseUrl = 'https://myBaseUrl_xyz.com';
const auth_storage_path = 'storage_auth.json';
exports.LoginPage = class LoginPage {
/**
* @param {import('@playwright/test').Page} page
*/
constructor(page) {
this.page = page;
}
async login() {
process.env.STORAGE = null;
const baseUrl = 'https://myBaseUrl_xyz';
await this.page.goto(baseUrl);
await this.page.fill('[id="username"]', '*****');
await this.page.fill('[id="password"]', '*****');
await Promise.all([
this.page.waitForNavigation(/*{ baseUrl: baseUrl }*/),
this.page.click('[id="fc-login-button"]')
]);
const storage = await this.page.context().storageState({path: auth_storage_path});
process.env.STORAGE = JSON.stringify(storage);
JSON.parse(process.env.STORAGE);
}
// async gotoBaseUrl() {
// test.use({storageState: auth_storage_path});
// return this.page.goto(baseUrl);
// }
}
使用_auth_store _viaPage.spec.js从tests_调用登录页面
// tests_with_auth_store_viaPage.spec.js
const {test, expect} = require('@playwright/test');
const { LoginPage } = require('../login/login-page');
const auth_storage_path = 'storage_auth.json';
const baseUrl = 'https://myBaseUrl_xyz.com';
test('login', async ({page}) => {
const loginPage = new LoginPage(page);
await loginPage.login();
});
test.describe("testDEscription tests with save login into json", () => {
test.use({storageState: auth_storage_path});
test('i- firstTest whatever', async ({page}) => {
await page.goto(baseUrl);
......
....
});
但是这里的test('i-firstTest whatever')页面。goto(baseUrl)不会跳转到baseUrl,而是跳转到keydape auth页面:(。
eventhougtest('login')是登录并创建存储\u auth.json。所以我做错了什么,也许我需要像loginPage.gotoBaseUrl()这样的东西,但它不起作用。
到目前为止,我正在编写其余的所有测试,包括总是第一个测试('mylog),但我相信有一种方法通过pageObject
当做
已经找到路了。我找到了自己的路。如果有人需要帮助,请尽管问我
问题内容: 我有以下代码,可用于以编程方式登录网站。但是,它不返回登录页面的html(带有用户数据信息),而是返回登录页面的html。我试图多次查找出问题所在,但似乎找不到。 [注意]登录表单中有一行: 但这没有“名称”属性,因此我没有发布 任何答案/评论表示赞赏! [UPDATE2]对于登录页面,浏览器显示以下内容… 问题答案: 您必须分两个阶段登录该站点。 第1阶段-您向该URL 发送请求-
我可以使用这个简单的脚本登录facebook、google或stackoverflow(或者根据ID的不同而略有变化)。但是,我的公司有一个网站,我无法使用powershell登录该网站。 我认为唯一的区别是该网站位于我们的“内部网”上,而不是互联网上,出于某种原因,powershell将两者区分开来。但我不确定,我仍然可以正常打开IE,进入url并查看源代码,查看标签ID等等。 有人知道我在本例
我正在尝试使用jsoup登录一个网站,我很确定我正在解析所有需要解析的东西,我只是不知道出了什么问题。 我用这个做参考:http://cs.harding.edu/fmccown/android/Logging-into-Pipeline.pdf 以下是我的AsycntTask doInBackground中的代码: 但问题是,当我登录时,它不包含页面的文档,它包含一个错误页面的文档,该页面只显示
问题内容: 我已经广泛阅读了有关此操作的信息,并尝试了许多不同的版本,但无法使其正常工作。 基本上,我只想登录ConEdison网站并抓取我的帐单记录。这是我所拥有的: 我知道该信息是正确的(尽管我不知道是否真的需要传递没有值的数据参数)。 我没有任何错误,只是打印了登录页面(https://apps.coned.com/cemyaccount/NonMemberPages/Login.aspx?
我有一个批处理文件,其中有用户名和密码登录以下格式的网站在第16行第5个字是用户名,第7个字是密码。 启动VPNGUI-c-用户1000-pwd 123456 我需要一个关于JavaScript的帮助,它应该打开网站主页,阅读批量文件收集用户名和密码,自动填写用户名和密码在主页上,并使用发送键登录。我已经尝试过使用vbscript,下面是我的代码,但我需要Java版本,它应该允许用户一次点击就自动
问题内容: 在此网站上,您可以输入您的学生卡号,然后显示该卡上还剩多少钱。我想使用JSOUP获得信息。这是我当前的代码,但是不起作用, 我没有太多经验,所以我不知道在哪里寻找问题。一些想法: 我应该使用还是? 在使用chrome devoloper工具时,发布数据是我使用功能发送的所有数据。但是,如果发送时出现错误,为什么? 我应该发送解密或加密的数据吗?(两者均在chrome devoloper