ご無沙汰してます。おおのんです。
URL取得する方法メモ。
現在ページのURLと期待値を比較したいけど、どうすれば取得できるのだろう。
url取得できない例
let puppeteer = require("puppeteer");
let browser;
let page;
beforeAll(async () => {
browser = await puppeteer.launch({
args: ["--disable-web-security"],
headless: false,
slowMo: 30
});
page = await browser.newPage();
jest.setTimeout(20000);
});
afterAll(() => {
browser.close();
});
describe("TEST", () => {
test("toMypage", async () => {
// 画面移動
await page.goto("http://localhost:8000/mypage");
// マイページへ遷移成功
await page.waitForTimeout(5000);
// location.hrefで完全なURL取得できるから、比較する
await expect(location.href).toEqual("http://localhost:8000/mypage");
await page.close();
});
});
結果
● LOGIN TEST › Login
expect(received).toEqual(expected) // deep equality
Expected: "http://localhost:8000/mypage"
Received: "http://localhost/"
・・・アカン。
Received: "http:/localhost/"になる。
こうすると取得できる。
取得できる例
// ~略~
// location.href => url.path()にする
await expect(url.path()).toEqual("http://localhost:8000/mypage");
// ~略~
結果
● LOGIN TEST › Login
Test Suites: 1 passed, 1 total
Tests: 1 passed, 1 total
通った~。
【puppeteer/puppeteer】 how to get current url ? #2215
で既出でした。