Я новичок в драматурге и машинописи. Я просто пытаюсь щелкнуть простой раскрывающийся список в рамках автоматического теста, но элемент не щелкается.
Вот HTML элемента
<div class = "rz-dropdown valid form-control" onmousedown = "Radzen.activeElement = null" style = "width: 228px; height: 55px; border-radius: 1rem; border: none #6E33FF; background-color: #F3F4F6;" tabindex = "101" id = "NavPartnerSelector" _bl_f3dcba6d-438e-4553-a61b-d5e840cf68b8 = ""><!--!-->
<div class = "rz-helper-hidden-accessible"><!--!-->
<input aria-haspopup = "listbox" readonly = "" type = "text" tabindex = "-1" aria-label = "wpart_m4qzr9x"><!--!-->
</div><!--!-->
<span class = "rz-dropdown-label rz-inputtext" style = "width:100%;"><!--!-->
<div class = "d-flex align-items-center text-truncate" style = "height: 40px; " b-1m6v1ajx9g = "">Regus UK</div><!--!-->
</span><!--!-->
<!--!-->
<!--!--><div class = "rz-dropdown-trigger rz-corner-right">
<span class = "rz-dropdown-trigger-icon rzi rzi-chevron-down"></span>
</div>
<div id = "popup-NavPartnerSelector" class = "rz-dropdown-panel " style = "display:none; box-sizing: border-box"><!--!-->
<div class = "rz-dropdown-items-wrapper" style = "height: 600px; border-radius: 1rem; background-color: white; overflow-anchor: none;"><!--!-->
<ul class = "rz-dropdown-items rz-dropdown-list" role = "listbox" _bl_b330b560-8154-446d-bfc7-a8551e92a826 = ""><!--!-->
<!--!--><div style = "height: 0px; flex-shrink: 0;" _bl_65813d22-3c18-47ee-8ee8-39b7ab1c1a56 = ""></div><div style = "height: 0px; flex-shrink: 0;" _bl_c79bb64a-fe84-4ec3-a8c8-08c08e98f09b = ""></div> </ul><!--!-->
</div><!--!-->
</div><!--!-->
</div>
Вот мой код, чтобы щелкнуть по нему:
import { Page } from 'playwright';
export default class PMSIntegrations {
private page: Page;
constructor(page: Page) {
this.page = page;
}
async navigateToIntegrations()
{
//click settings dropdown and select Integrations
const settingsDropdown = await this.page.locator('#NavPartnerSelector');
settingsDropdown.click();
}
}
Когда я перехожу, он просто говорит «ожидание...» и на самом деле не нажимает на элемент. Что я делаю не так?
Скриншот ниже






Не ждите локатора, ждите действия:
import {test} from "@playwright/test"; // ^1.42.1
const html = `
<div class = "rz-dropdown valid form-control" onmousedown = "Radzen.activeElement = null" style = "width: 228px; height: 55px; border-radius: 1rem; border: none #6E33FF; background-color: #F3F4F6;" tabindex = "101" id = "NavPartnerSelector" _bl_f3dcba6d-438e-4553-a61b-d5e840cf68b8 = ""><!--!--></div>`;
test("div can be clicked", async ({page}) => {
await page.setContent(html);
const settingsDropdown = page.locator("#NavPartnerSelector");
await settingsDropdown.click();
});
Если это не работает на вашем реальном веб-сайте, значит, сайт — это нечто большее, чем HTML-код, которым вы поделились, и для предоставления рабочего ответа потребуется больше контекста.
Часто по элементам невозможно щелкнуть, потому что они не видны или не доступны для действий из-за произвольного поведения JS/CSS, или они находятся в iframe, или страница имеет блок CloudFlare и не обслуживает DOM. вы видите человека-посетителя.
Иногда принудительное нажатие или использование щелчка в ненадежном браузере может сдвинуть дело с мертвой точки, но является ли это хорошей практикой, зависит от того, тестируете ли вы или парсинг.