前言
iframe 是web自动化里面一个比较头疼的场景,在Selenium中处理 iframe 需要切换来切换去非常麻烦。
在playwright中,让其变得非常简单,我们在使用中无需切换iframe,直接定位元素即可。
iframe 定位
可以使用page.frame_locator()或locator.frame_locator()方法创建 FrameLocator 捕获足该 iframe 中检索和定位元素。
使用示例一:
locator = page.frame_locator("my-frame").get_by_text("Submit")
locator.click()
使用frame_locator() 定位到iframe上,然后继续在上面使用locator方法定位元素
iframe 定位器是严格的。这意味着如果有多个元素与给定的选择器匹配,则对 iframe 定位器的所有操作都会抛出异常。
# Throws if there are several frames in DOM:
page.frame_locator('.result-frame').get_by_role('button').click()
# Works because we explicitly tell locator to pick th