使用Playwright自动化工具如何获取当前页面的URL?

27

如何在 Playwright 中获取当前页面的 URL?类似于 Protractor 的 browser.getCurrentUrl()


1
我为了更清晰地表达问题重新编写了原始问题,并提名再次开放,因为这是我需要的正确且易于搜索的答案。 - emery
3个回答

20
要将当前页面的URL作为字符串获取(无需等待):
page.url()

“page” 是一个 Page 类的对象。你应该已经有了一个 Page 对象,不同的框架实例化它的方式各有不同:https://playwright.dev/docs/api/class-page

可以使用以下代码导入:

import Page from '@playwright/test';

或者这个

const { webkit } = require('playwright');

(async () => {
  const browser = await webkit.launch();
  const context = await browser.newContext();
  const page = await context.newPage();
}

4
在许多情况下,await expect(page).toHaveURL(someURL) 可能是你要寻找的。 - Andrew
dotnet/C# 中,我使用了 page.Url。希望能帮到某些人。 - ehsan_kabiri_33

20

const {browser}=this.helpers.Playwright;
await browser.pages(); //list pages in the browser

//get current page
const {page}=this.helpers.Playwright;
const url=await page.url();//get the url of the current page


2
page.url() 实际上不是一个 Promise。 - mpen

0
你还可以使用page.evaluate() API。
const href = await page.evaluate(() => document.location.href);

根据剧本文档中提到的内容 剧本评估API

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接