【问题标题】:How can I set the baseURL for expect in playwright?如何在剧作家中设置期望的 baseURL?
【发布时间】:2022-02-22 07:32:45
【问题描述】:

在我的 Playwright 测试中,我根据文档设置了 base-url

const config: PlaywrightTestConfig = {
  projects: [
    {
      name: 'Safari MacBook Air',
      use: {
        browserName: 'webkit',
        viewport: {
          width: 2560,
          height: 1620,
        },
        contextOptions: {
          ignoreHTTPSErrors: true,
        },
      },
    },
  ],
  use: {
    baseURL: process.env.PLATFORMSH_URL,
    headless: false,
    locale: 'ja-JP',

    // Debugging artifacts.
    screenshot: 'on',
    trace: 'on',
    video: 'on',
  },
};
export default config;

这适用于goto

await this.page.goto('/myDirectory');

但是,expect 失败:

  expect(page.url()).toBe('/myPage');

错误是:

Expected: "/myPage"
Received: "https://www.example.com/myPage"

如何将expectbaseURL 一起使用?

【问题讨论】:

    标签: playwright playwright-test


    【解决方案1】:

    尝试改用这个断言: 例如,将 Playwright 主页配置为我们的 baseUrl

       {
         name: 'webkit',
         use: {
           ...devices['Desktop Safari'],
           baseURL: 'https://playwright.dev/'
         },
       },
    

    然后:

    test('baseUrl', async ({ page }) => {
      await page.goto('/docs/intro');
      await expect(page).toHaveURL('/docs/intro');
    });
    

    如果您想继续使用这种格式:

      expect(page.url()).toBe('/myPage');
    

    然后你需要更改断言,因为你所在的 url 不等于你的目录。您可以断言您所在的 url 包含上述目录,而不是:

      expect(page.url()).toContain('/myPage');
    

    【讨论】:

      【解决方案2】:

      除了最后一行之外,您的代码没有任何问题。 page.url() 会给你整个 URL 地址 驱动程序(浏览器,无论如何)当前是,expect(something)toBe(thing) 就像等于,在你的情况下它会失败。

      您可以通过以下几种方式断言:

      等待期望(page.url().includes(partOfUrl)).toBeTruthy();

      【讨论】:

        【解决方案3】:

        最后我只是把它包装在我自己的实用函数中:

        const pwaBaseUrl = process.env.NOSLASH_URL;
        
        export const assertPath = async (page: Page, path: string) => {
          expect(page.url()).toBe(`${pwaBaseUrl}/${path}`);
        };
        

        这保证了我在正确的路径上。也许这通常不是必需的,但是来自 PHP 上的 Behat 测试,这是我习惯的。

        【讨论】:

          猜你喜欢
          • 2021-10-08
          • 2022-11-17
          • 2021-01-05
          • 2011-08-13
          • 2021-08-01
          • 2022-01-01
          • 2020-01-21
          • 2021-09-28
          • 2023-02-26
          相关资源
          最近更新 更多