Я работаю над расширением Chrome, которое создает пользовательскую опцию контекстного меню, которая доступна, когда пользователь выделяет текст и щелчок правой кнопкой мыши на любой фоновой странице. < /p>
Варианты контекстного меню по умолчанию Chrome + My Custom 'Add Word' Option < /p>
Все эта функция работает под номинацией, когда я навсегда тестирую приложение, но я хотел бы добавить, что на ET2E тестирует, что ETMINE Tt, чтобы добавить, что ART2E AT2E. Я использую Playwright, чтобы написать мои тесты E2E, и моя пользовательская опция «Добавить слово» отображается в режиме отладки. Ярлыки, такие как «Shift+F10», чтобы открыть контекстное меню и использование команд «ArrowUp» и «ArrowDown», чтобы пройти через меню. Я попытался найти меню «Добавить слово», используя «page.getbytext ('добавить слово») и' getbyrole ('' button ', {name:' добавить слово '})' selectors безрезультатно. Я пытался использовать параметры правой кнопки. Я также пытался нажать на определенные координаты, используя этот API «page.mouse.click» на координатах контекстного меню, безрезультатно: https://playwright.dev/docs/api/class-mouse#mouse-move. Драматург не может найти этот вариант меню. Это связано с тем, что это контекстное меню не находится в стороне от страницы, понятно. Мне нужен способ запросить эту опцию. Я иду на произвольную фоновую страницу "https://www.google.com". Детали реализации «loginwith» не имеют значения. Этот пользовательский вариант меню отображается в тестовом браузере, как я показал на снимках экрана ранее: < /p>
import { test, expect } from "../fixtures";
import { goto, loginWith, testUser, VITE_API_DOMAIN } from "../helpers";
test.describe("Context menus", () => {
test.describe("when the user is logged in", () => {
test.beforeEach(async ({ page, context, request, extensionId }) => {
await context.clearCookies();
await request.delete(`${VITE_API_DOMAIN}/testing/reset`);
await request.post(`${VITE_API_DOMAIN}/users`, {
data: testUser,
});
await goto(page, extensionId);
});
test("it shows the context menu", async ({
page,
}) => {
await loginWith(page, testUser.email, testUser.password);
await page.goto("https://www.google.com");
const privacyButton = page.getByText("Privacy");
await privacyButton.selectText();
await privacyButton.click({ button: "right" });
const addWordButton = page.getByRole("button", { name: "Add Word" });
await expect(addWordButton).toBeVisible();
});
});
});
< /code>
Тест вывод: < /p>
Running 1 test using 1 worker
1) [chromium] › tests/e2e/ContextMenu/context_menu.spec.ts:15:5 › Context menus › when the user is logged in › it shows the context menu when the user is logged in
Error: Timed out 5000ms waiting for expect(locator).toBeVisible()
Locator: getByRole('button', { name: 'Add Word' })
Expected: visible
Received:
Call log:
- expect.toBeVisible with timeout 5000ms
- waiting for getByRole('button', { name: 'Add Word' })
25 |
26 | const addWordButton = page.getByRole("button", { name: "Add Word" });
> 27 | await expect(addWordButton).toBeVisible();
| ^
28 | });
< /code>
В этом другом посте упоминается желание взаимодействовать с контекстным меню браузера по умолчанию, но этот пользователь не добавил опцию пользовательского меню, поэтому это не применимо к моей ситуации: правый клик мыши и выбор подходящего элемента с использованием Playwright. Мое контекстное меню - это контекстное меню браузера: как определить, что меню правого щелчка доступно, и вы можете открыть на новой вкладке без скриншотов. https://playwright.dev/docs/intro. Если можно выбрать эти параметры контекстного меню по умолчанию по умолчанию, то же самое должно быть применимо для моего пользовательского опции «Добавить слово» контекстного меню.
Подробнее здесь: https://stackoverflow.com/questions/796 ... -e2e-tests
Как я могу использовать драматург для взаимодействия с контекстным меню Chrome в тестах E2E? ⇐ Javascript
Форум по Javascript
1746005128
Anonymous
Я работаю над расширением Chrome, которое создает пользовательскую опцию контекстного меню, которая доступна, когда пользователь выделяет текст и щелчок правой кнопкой мыши на любой фоновой странице. < /p>
Варианты контекстного меню по умолчанию Chrome + My Custom 'Add Word' Option < /p>
Все эта функция работает под номинацией, когда я навсегда тестирую приложение, но я хотел бы добавить, что на ET2E тестирует, что ETMINE Tt, чтобы добавить, что ART2E AT2E. Я использую Playwright, чтобы написать мои тесты E2E, и моя пользовательская опция «Добавить слово» отображается в режиме отладки. Ярлыки, такие как «Shift+F10», чтобы открыть контекстное меню и использование команд «ArrowUp» и «ArrowDown», чтобы пройти через меню. Я попытался найти меню «Добавить слово», используя «page.getbytext ('добавить слово») и' getbyrole ('' button ', {name:' добавить слово '})' selectors безрезультатно. Я пытался использовать параметры правой кнопки. Я также пытался нажать на определенные координаты, используя этот API «page.mouse.click» на координатах контекстного меню, безрезультатно: https://playwright.dev/docs/api/class-mouse#mouse-move. Драматург не может найти этот вариант меню. Это связано с тем, что это контекстное меню не находится в стороне от страницы, понятно. Мне нужен способ запросить эту опцию. Я иду на произвольную фоновую страницу "https://www.google.com". Детали реализации «loginwith» не имеют значения. Этот пользовательский вариант меню отображается в тестовом браузере, как я показал на снимках экрана ранее: < /p>
import { test, expect } from "../fixtures";
import { goto, loginWith, testUser, VITE_API_DOMAIN } from "../helpers";
test.describe("Context menus", () => {
test.describe("when the user is logged in", () => {
test.beforeEach(async ({ page, context, request, extensionId }) => {
await context.clearCookies();
await request.delete(`${VITE_API_DOMAIN}/testing/reset`);
await request.post(`${VITE_API_DOMAIN}/users`, {
data: testUser,
});
await goto(page, extensionId);
});
test("it shows the context menu", async ({
page,
}) => {
await loginWith(page, testUser.email, testUser.password);
await page.goto("https://www.google.com");
const privacyButton = page.getByText("Privacy");
await privacyButton.selectText();
await privacyButton.click({ button: "right" });
const addWordButton = page.getByRole("button", { name: "Add Word" });
await expect(addWordButton).toBeVisible();
});
});
});
< /code>
Тест вывод: < /p>
Running 1 test using 1 worker
1) [chromium] › tests/e2e/ContextMenu/context_menu.spec.ts:15:5 › Context menus › when the user is logged in › it shows the context menu when the user is logged in
Error: Timed out 5000ms waiting for expect(locator).toBeVisible()
Locator: getByRole('button', { name: 'Add Word' })
Expected: visible
Received:
Call log:
- expect.toBeVisible with timeout 5000ms
- waiting for getByRole('button', { name: 'Add Word' })
25 |
26 | const addWordButton = page.getByRole("button", { name: "Add Word" });
> 27 | await expect(addWordButton).toBeVisible();
| ^
28 | });
< /code>
В этом другом посте упоминается желание взаимодействовать с контекстным меню браузера по умолчанию, но этот пользователь не добавил опцию пользовательского меню, поэтому это не применимо к моей ситуации: правый клик мыши и выбор подходящего элемента с использованием Playwright. Мое контекстное меню - это контекстное меню браузера: как определить, что меню правого щелчка доступно, и вы можете открыть на новой вкладке без скриншотов. https://playwright.dev/docs/intro. Если можно выбрать эти параметры контекстного меню по умолчанию по умолчанию, то же самое должно быть применимо для моего пользовательского опции «Добавить слово» контекстного меню.
Подробнее здесь: [url]https://stackoverflow.com/questions/79600007/how-can-i-use-playwright-to-interact-with-chromes-context-menu-in-e2e-tests[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия