小编Pat*_*nny的帖子

我如何断言某个元素不在剧作家的页面上?

我正在测试一个包含徽标的网站,并且我想确保该徽标不会出现在某些页面上。

如何断言某个元素不存在?我检查了剧作家断言文档,但它只有检查确实存在的事情的示例。

async assertNoLog(): Promise<boolean> {
  await this.page.locator('div#page-id'); // now the page has loaded
  // How do I check if logo is on page without throwing an error if it is missing
}
Run Code Online (Sandbox Code Playgroud)

我不知道在这里写什么来断言页面上的任何地方都找不到我的元素。

typescript playwright

38
推荐指数
3
解决办法
4万
查看次数

有没有办法从git仓库中删除所有被忽略的文件?

昨天我花了几个小时调试我的git repo的问题,git reset HEAD --hard因为导致问题的文件被忽略了.gitignore.有没有办法"刷新"或"清理"所有被忽略的文件的git仓库,以便只有git跟踪的文件存在?

我终于通过删除repo并再次从github克隆它来解决我的问题,但是在将来,我想立即删除所有可能存在问题的文件(那些被忽略的文件).

git

22
推荐指数
2
解决办法
6126
查看次数

如何在测试中访问剧作家测试运行者项目信息?

我正在编写一个测试来在我的网站上注册用户。使用@playwright/test ,我在playwright.config.ts中定义了几个不同的项目:

{
  name: 'iPhone 12 Pro',
  use: devices['iPhone 12 Pro'],
},
{
  name: 'iPhone 12 Pro Max',
  use: devices['iPhone 12 Pro Max'],
},
{
  name: 'iPhone 5/SE',
  use: devices['iPhone SE'],
},
Run Code Online (Sandbox Code Playgroud)

我的测试如下所示:

test('Register a user', async ({ page }) => {
  // Go to baseUrl/webapp/
  await page.goto(`${baseUrl}webapp/`);

  // Click the register tab.
  await page.click('ion-segment-button[role="tab"]:has-text("Register")');
  await page.click('input[name="mail"]');
  // @TODO: How do I get the project name here?
  await page.fill('input[name="mail"]', `test@example.com`);
  // Press Tab
  await page.press('input[name="mail"]', 'Tab');
  await …
Run Code Online (Sandbox Code Playgroud)

playwright

11
推荐指数
1
解决办法
7529
查看次数

如何安全地从 package.json 导入版本,同时考虑错误:不应导入命名的导出“版本”?

更新到 Webpack 5 后,我收到此错误:

不应从默认导出模块导入命名导出“版本”(作为“版本”导入)(很快将仅提供默认导出)

超级简单的代码示例:

import { version } from '../package.json';

export const appVersion = version;
Run Code Online (Sandbox Code Playgroud)

这个问题给出了 的解决方案import * as packageInfo from '../../package.json'; version: packageInfo.version,,但这导入了所有 的解决方案package.json,正如答案注释上的一些评论一样,这可能被视为安全风险。

我所需要的只是版本号;如果我必须导入整个内容package.json并可能将其公开给我的用户,那么最好引入代码重复并仅创建和维护两个单独的变量:

  1. 中的版本package.json
  2. 我的 js 应用程序中的版本

然而,我猜测有一种安全的导入方式,package.json不会让 Webpack 5 抱怨,但我只是不知道。有这样的办法吗?

webpack webpack-5

11
推荐指数
1
解决办法
9813
查看次数

py2app-“includes”和“packages”变量有什么区别?

我正在尝试使用 py2app 为 Mac OS X 打包 Linux 程序。我的 setup.py 看起来像这样:

"includes": "sip,numpy,cherrypy,cPickle,md5,logging,shutil,xml.sax,PyQt4,PyQt4.QtCore",
"resources": "mnemosyne",
"iconfile": "pixmaps/mnemosyne.icns",
"packages": "mnemosyne,mnemosyne.pyqt_ui,mnemosyne.libmnemosyne,mnemosyne.libmnemosyne.translators,mnemosyne.libmnemosyne.card_types,mnemosyne.libmnemosyne.databases,mnemosyne.libmnemosyne.file_formats,mnemosyne.libmnemosyne.filters,mnemosyne.libmnemosyne.loggers,mnemosyne.libmnemosyne.plugins,mnemosyne.libmnemosyne.renderers,mnemosyne.libmnemosyne.render_chains,mnemosyne.libmnemosyne.schedulers,mnemosyne.libmnemosyne.controllers,mnemosyne.libmnemosyne.ui_components,mnemosyne.libmnemosyne.statistics_pages,mnemosyne.libmnemosyne.review_controllers,mnemosyne.libmnemosyne.criteria,mnemosyne.libmnemosyne.upgrades,mnemosyne.script,mnemosyne.webserver,openSM2sync,openSM2sync.binary_formats,openSM2sync.text_formats"
Run Code Online (Sandbox Code Playgroud)

但我意识到我也可以包含这样的模块:

"includes": "sip,numpy,cherrypy,cPickle,md5,logging,shutil,xml.sax,PyQt4,PyQt4.QtCore,mnemosyne.pyqt_ui.*,mnemosyne.libmnemosyne.*,mnemosyne.libmnemosyne.translators.*,mnemosyne.libmnemosyne.card_types.*,mnemosyne.libmnemosyne.databases.*,mnemosyne.libmnemosyne.file_formats.*,mnemosyne.libmnemosyne.filters.*,mnemosyne.libmnemosyne.loggers.*,mnemosyne.libmnemosyne.plugins.*,mnemosyne.libmnemosyne.renderers.*,mnemosyne.libmnemosyne.render_chains.*,mnemosyne.libmnemosyne.schedulers.*,mnemosyne.libmnemosyne.controllers.*,mnemosyne.libmnemosyne.ui_components.*,mnemosyne.libmnemosyne.statistics_pages.*,mnemosyne.libmnemosyne.review_controllers.*,mnemosyne.libmnemosyne.criteria.*,mnemosyne.libmnemosyne.upgrades.*,mnemosyne.script.*,mnemosyne.webserver.*,openSM2sync.*,openSM2sync.binary_formats.*,openSM2sync.text_format.*",
"resources": "mnemosyne",
"iconfile": "pixmaps/mnemosyne.icns",
Run Code Online (Sandbox Code Playgroud)

我不是编码员,所以我真的不明白这里发生了什么。什么时候应该使用“includes”,什么时候应该使用“packages”?

py2app

7
推荐指数
1
解决办法
4577
查看次数

如何在剧作家中设置expect的baseURL?

在我的 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;
Run Code Online (Sandbox Code Playgroud)

这适用于goto

await this.page.goto('/myDirectory');
Run Code Online (Sandbox Code Playgroud)

但是,它失败了expect

  expect(page.url()).toBe('/myPage');
Run Code Online (Sandbox Code Playgroud)

错误是:

Expected: "/myPage"
Received: "https://www.example.com/myPage"
Run Code Online (Sandbox Code Playgroud)

我该如何使用expectwith baseURL

playwright playwright-test

7
推荐指数
1
解决办法
2万
查看次数

Mac OS Mountain Lion:是否可以为Gatekeeper编写签名应用程序而无需向开发者会员支付Apple费用?

我的理解是Mountain Lion将在配置中发布,默认情况下禁止通过Gatekeeper安装未签名的应用程序.

我目前正在分发一个开源应用程序; 这是一个爱好项目,我不收取任何费用.我是否能够在不购买Mac开发者会员资格的情况下签署此应用程序的代码,或Apple是否要求所有开发人员每年支付99美元才能发布安装在Mountain Lion默认配置上的应用程序?

mac-app-store osx-mountain-lion osx-gatekeeper

6
推荐指数
1
解决办法
880
查看次数

Playwright 测试运行器:将测试限制为仅在一个浏览器中使用包含多个项目的配置文件

我有一个包含许多项目的测试配置文件(playwright.config.ts)。

通常,我想测试几种不同的浏览器。

但是,当我构建测试时,我只想使用单个浏览器/项目进行测试(因为在我处理测试时测试将会失败)。

我尝试了这个命令:

npx playwright test test.ts --browser='chromium'
Run Code Online (Sandbox Code Playgroud)

但我收到一个错误:

错误:配置文件定义项目时无法使用 --browser 选项。请在项目中指定 browserName。

如何“在项目中指定 browserName”以限制测试在一个浏览器上运行?

我的配置文件:

const config: PlaywrightTestConfig = {
  projects: [
    {
      name: 'Chrome Stable',
      use: {
        browserName: 'chromium',
        channel: 'chrome',
      },
    },
    {
      name: 'Safari MacBook Air',
      use: {
        browserName: 'webkit',
        viewport: {
          width: 2560,
          height: 1620,
        },
      },
    },
    {
      name: 'Firefox Desktop',
      use: {
        browserName: 'firefox',
        viewport: {
          width: 1920,
          height: 1080,
        },
      },
    },
    {
      name: 'iPhone 6/7/8',
      use: devices['iPhone 8'], …
Run Code Online (Sandbox Code Playgroud)

playwright

6
推荐指数
1
解决办法
9202
查看次数

如何使用react-query useMutation进行多部分文件上传?

我正在尝试在 Drupal 后端上将 React-query 与 Ionic React Web 应用程序一起使用。我有一个 React 表单(使用react-hook-form),让用户可以选择将图像附加到他们的用户帐户。

Ionic 通过 JSON:API 与 Drupal 交互,而 Drupal 的 JSON:API 要求先上传文件,然后将文件附加到用户帐户,因此我需要两个突变。

我的问题是:如何实现这两个突变以便上传文件,然后,如果成功,我使用第二个突变更新用户帐户,如果上传不成功,我会显示错误?

目前我的代码如下所示:

添加照片.tsx

  const onSubmit = async (userData: JsonFormUser) => {
    if (userData.photoType === 'other') {
      const myJsonData : JsonDataUserPhotoOther = {
        data: {
          id: userObject.id,
          type: 'user',
          attributes: {
            photoType: userData.photoType,
            photoName: userData.photoName,
          },
        },
      };

      // Upload the new photo.
      if (imageSrc && !imageSrc.includes(baseUrl)) {
        const myCroppedImgBlob = await getCroppedImg(
          imageSrc,
          croppedAreaPixels,
        );
        mutatePhotoFile.mutate(myCroppedImgBlob);
        // Todo: Find …
Run Code Online (Sandbox Code Playgroud)

promise typescript react-query

6
推荐指数
1
解决办法
1万
查看次数

在Vite中,如何为资产指定服务器的子目录?

我正在使用 Vite 构建一个 React 应用程序,该应用程序托管在我的网络服务器上的子目录 ( /pwa) 中。

主要站点是 Drupal 10 站点。

之前,我使用 Create React App 来构建我的 PWA。我现在已将 PWA 转换为使用 Vite,但问题是,当我运行npm run build并将dist目录复制到/pwa我的服务器上时,查找资产失败,因为构建目标www.example.com/assets而不是www.example.com/pwa/assets.

如何修改 vite 配置以告诉它我需要最终输出来查找子目录中的资产?

rollup vite

6
推荐指数
1
解决办法
6383
查看次数