如何检查一个链接是否在剧作家可点击?



考虑以下截图:

模态

在这里,只有按钮I acceptMore options是可点击的。模态背景防止任何对导航链接的点击。是否有可能使用剧作家只选择当前视口中的链接,并接收点击事件,如果一个发生在他们的边界框内?

感谢

你可以使用剧作家的可操作性检查组合来缩小链接/按钮的范围,只选择那些可点击的。从定位器开始选择所有标签(或按钮或其他东西,这取决于你正在寻找什么)。遍历得到的定位器,并对每个

执行所需的检查。
locators = page.locator(selector)
locator_count = await locators.count()
for index in range(0, locator_count):
locator = locators.nth(index)
if await locator.is_visible() and await locator.is_enabled():
# do your action
...

编辑:阅读更多,看起来你实际上可以使用点击trial选项做这些可操作性检查。page.click(selector, trial=True)

这就是三思而后行的方法。剧作家也会在每次点击和其他事件之前进行这些检查,所以如果你只是想在一个有效的元素上执行一个动作,你可以只try点击并处理错误,如果它是不可操作的。像这样:

locators = page.locator(selector)
locator_count = await locators.count()
for index in range(0, locator_count):
locator = locators.nth(index)
try:
await locator.click()
except TimeoutError:
# handle error. likely just skip this locator
continue

最新更新