zoukankan      html  css  js  c++  java
  • 【selenium学习 -9】iframe的切换

    在测试中,有时会遇到一个网页用iframe嵌套另一个网页的情况,如我们今天实验的例子

     如果要操作计算器的页面元素,需要首先切换到计算器的iframe上面

    切换到iframe上的四种方式,一般情况下用id和name就能解决绝大多数问题

        # 1.用index来定位
        driver.switch_to.frame(index)
        # 2.用id来定位
        driver.switch_to.frame(id)
        # 3.用name来定位
        driver.switch_to.frame(name)
        # 4.用WebElement对象来定位
        driver.switch_to.frame(WebElement)

    实验用的HTML代码:

    <html>
        <head>
            <title>iFrameTest</title>
        </head>
        <body>
            <P>iFrameTest测试页面</P>
            <iframe id ="iframe" name ="iframename" src="./cal-form.html" frameborder="2" width="800px" height="600px"></iframe>
        </body>
    </html>

    实验步骤为:

    1.打印出计算器中的“保留”字样

    2.然后打印出主页面的“iFrameTest测试页面”字样

    from selenium import webdriver
    import time
    
    if __name__ == '__main__':
        driver = webdriver.Chrome()
        driver.maximize_window()
        driver.get(
            "file:///xxxx/HTMLTest/iframeTest.html")
        # 获取到iframe
        iframe = driver.find_element_by_id("iframe")
        # 切换到计算器的iframe
        driver.switch_to.frame(iframe)
        # 获取“保留”字样
        iframe_text = driver.find_element_by_xpath("/html/body/table[2]/tbody/tr[5]/td[2]").text
        print(iframe_text)
    
        # 切换回主文档
        driver.switch_to.default_content()
        default_page_text = driver.find_element_by_tag_name("p").text
        print(default_page_text)

    总结:在切换到iframe中操作完成后,如果要回到主文档,也要通过switch_to.default_content()切换回主文档才能继续操作

  • 相关阅读:
    JS系列:三元运算符与循环
    浏览器解析js和type判断数据类型
    JS系列:数据类型详细讲解
    JS系列:编程语言
    京东校招面试汇总
    有关axios的request与response拦截
    正则表达式 判断内容是否为合法的url
    H5 小代码(实时更新)
    H5 回到顶部按钮
    图片压缩(js压缩,底部有vue压缩图片依赖使用的教程链接)
  • 原文地址:https://www.cnblogs.com/ronyjay/p/12916540.html
Copyright © 2011-2022 走看看