Web自动化测试(01)- iFrame窗口切换
iFrame窗口切换iframe是一种特殊的窗口内嵌在页面之中在前端静态HTML表示为一个标签但是它又和新窗口一样其中的元素无法被直接定位需要进行切换1. 切换至子窗口1.1 通过ID、name切换推荐# 通过 iframe 的 id 或 name 属性 driver.switch_to.frame(iframe_id) # 切换到 id 为 iframe_id 的 iframe driver.switch_to.frame(iframe_name) # 切换到 name 为 iframe_name 的 iframe如果页面中有多个 iframe 的 ID/name 相同Selenium 会切换到第一个匹配的 iframe即使是嵌套在其他 iframe 里的子 iframe只要有 ID/name也能直接用这个写法前提是先切换到父 iframe# 先切换到父iframe driver.switch_to.frame(parent-frame) # 再切换到子iframe用ID/name driver.switch_to.frame(child-frame)1.2 通过索引切换# 假设页面中有多个 iframe通过索引来选择 driver.switch_to.frame(0) # 切换到第一个 iframe1.3 通过WebElement 切换较索引更稳定1.3.1 静态iframe切换# 找到 iframe 元素并切换 iframe_element driver.find_element(By.XPATH,//iframe[nameiframe_name]) driver.switch_to.frame(iframe_element)1.3.2 动态iframe切换动态 ID 有一部分是固定的比如 idext-gen-1234其中 ext-gen- 是固定的后面的数字是动态的。这时可以用 XPath 的 starts-with 或 contains 来定位 WebElement# contains ele self.driver.find_element(By.XPATH,//iframe[contains(id,layui-layer-)]) # starts-with ele self.driver.find_element(By.XPATH,//iframe[starts-with(id,layui-layer-)]) driver.switch_to.frame(ele)2. 切换至父窗口# 切换至父窗口 driver.switch_to.parent_frame()3. 切换至主窗口# 切换至主窗口 driver.switch_to.default_content()浏览器的“焦点”在同一时刻只能位于一个上下文中想要从一个嵌套的 iframe 跳到另一个并行的 iframe首先要切换至主窗口
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2440866.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!