Day 13:iframe与多窗口
适用人群需要在 iframe 或多窗口间切换目标学会 iframe 切换、switchTab 多窗口处理________________________________________双击工具今天用到的文件------------day13_step.xlsx2 个用例iframeTest windowTest共 12 步### 数据加载上传到系统后点击加载数据用例配置标签页步骤定义标签页*用例配置2 个用例iframeTest / windowTest步骤定义12 个步骤*日志标签页业务数据标签页全局变量标签页执行完成后HTML 报告展示两个用例的执行结果报告概览________________________________________iframe 问题iframe 是页面中嵌入的另一个页面。普通定位无法穿透 iframe 边界。需要用 switchIframe 方法先进入 iframe操作完后用 outIframe 退出。注意 进入 iframe 后getByText 等定位方法仅在 iframe 内部查找不再访问主页面元素。退出 iframe 后定位恢复为主页面。iframeTest 用例6 步页面iframesTest.html页面上有一个按钮 Click me 和一个嵌入 linkTest.html 的 iframe。iframe 测试页------------------------------------------1--navigateToiframesTest.html打开测试页2--switchIframe//iframe用 XPath 定位 iframe 并进入3getByTextExactLink Testnth1在 iframe 内定位第 2 个 Link Test4--click-点击该元素5--outIframe-退出 iframe6getByRoleByButtonClick meclick-点击主页面按钮Step 1: 打开测试页面可以看到主页面有一个输入框、一个 Click me 按钮以及一个嵌入的 iframe显示 linkTest.html 内容。Step 2-3: 使用 switchIframe(//iframe) 进入 iframe然后在 iframe 内用 getByTextExact(Link Test) nth(1) 定位第 2 个 Link Test 元素。iframe 内定位 Link TestStep 4: 点击该元素在 iframe 内部触发导航。iframe 内点击后Step 5: 执行 outIframe 退出 iframe定位恢复为主页面。Step 6: 点击主页面的 Click me 按钮输入框值变为 1111。点击 Click me 按钮### 关键点- switchIframe 参数传入 iframe 元素的定位表达式如 XPath //iframe- 进入 iframe 后所有定位方法在 iframe 内部查找可正常使用 getByText、getByRole 等- outIframe执行后定位恢复为主页面________________________________________windowTest 用例6 步页面windowsTest.html包含一个 target_blank 的链接和一个按钮。------------------------------------------1--navigateTowindowsTest.html打开多窗口测试页2getByText跳转到新页面index.htmclick-点击链接打开新标签页3getByText跳转到新页面index.htmclick-再次点击4--switchTab1切换到第 2 个标签页索引 15getByTextBackclick-在新页面点击 Back6getByRoleByButtonClick meclick-点击按钮Step 1: 打开 windowsTest.html页面包含一个 target_blank 链接和一个 Click me 按钮。多窗口测试页Step 2: 点击链接打开新标签页index.htm。新标签页已打开Step 4: switchTab(1) 切换到第 2 个标签页定位在新页面上执行。切换到第二个标签页Step 5: 在新页面点击 Back返回原页面。返回原页面Step 6-7: 回到原页面后点击 Click me 按钮页面显示点击成功。点击 Click me 按钮### 关键点- switchTab 参数标签页索引从 0 开始。新标签页通常在第 1 位索引 0 是原始页- target_blank 链接Playwright 会自动跟踪新标签页context.pages() 可获取所有页面- 切换到新标签页后后续定位在新页面上执行________________________________________方法参考---------------------switchIframeiframe 的定位表达式如 XPath进入 iframeoutIframe无退出 iframeswitchTab标签页索引数字从 0 开始切换浏览器标签页getByTextExact匹配完整的文本内容精确文本定位nth索引数字选择第 N 个匹配元素