我正在测试一个包含徽标的网站,并且我想确保该徽标不会出现在某些页面上。
如何断言某个元素不存在?我检查了剧作家断言文档,但它只有检查确实存在的事情的示例。
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)
我不知道在这里写什么来断言页面上的任何地方都找不到我的元素。
昨天我花了几个小时调试我的git repo的问题,git reset HEAD --hard因为导致问题的文件被忽略了.gitignore.有没有办法"刷新"或"清理"所有被忽略的文件的git仓库,以便只有git跟踪的文件存在?
我终于通过删除repo并再次从github克隆它来解决我的问题,但是在将来,我想立即删除所有可能存在问题的文件(那些被忽略的文件).
我正在编写一个测试来在我的网站上注册用户。使用@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) 更新到 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并可能将其公开给我的用户,那么最好引入代码重复并仅创建和维护两个单独的变量:
package.json然而,我猜测有一种安全的导入方式,package.json不会让 Webpack 5 抱怨,但我只是不知道。有这样的办法吗?
我正在尝试使用 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”?
在我的 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)
错误是:
Run Code Online (Sandbox Code Playgroud)Expected: "/myPage" Received: "https://www.example.com/myPage"
我该如何使用expectwith baseURL?
我的理解是Mountain Lion将在配置中发布,默认情况下禁止通过Gatekeeper安装未签名的应用程序.
我目前正在分发一个开源应用程序; 这是一个爱好项目,我不收取任何费用.我是否能够在不购买Mac开发者会员资格的情况下签署此应用程序的代码,或Apple是否要求所有开发人员每年支付99美元才能发布安装在Mountain Lion默认配置上的应用程序?
我有一个包含许多项目的测试配置文件(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) 我正在尝试在 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) 我正在使用 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 配置以告诉它我需要最终输出来查找子目录中的资产?
playwright ×4
typescript ×2
git ×1
promise ×1
py2app ×1
react-query ×1
rollup ×1
vite ×1
webpack ×1
webpack-5 ×1