zoukankan      html  css  js  c++  java
  • selenium3 + python

    一、frame和iframe区别

        Frame与Iframe两者可以实现的功能基本相同,不过Iframe比Frame具有更多的灵活性。 frame是整个页面的框架,iframe是内嵌的网页元素,也可以说是内嵌的框架

        Iframe标记又叫浮动帧标记,可以用它将一个HTML文档嵌入在一个HTML中显示。它和Frame标记的最大区别是在网页中嵌入 的<Iframe></Iframe>所包含的内容与整个页面是一个整体,而<Frame>< /Frame>所包含的内容是一个独立的个体,是可以独立显示的。另外,应用Iframe还可以在同一个页面中多次显示同一内容,而不必重复这段内 容的代码。

    二、切换iframe

        1.由于登录按钮是在iframe上,所以第一步需要把定位器切换到iframe上

        2.用switch_to_frame方法切换,此处有id属性,可以直接用id定位切换

    三、如果iframe没有id怎么办?

        1.这里iframe的切换是默认支持id和name的方法的,当然实际情况中会遇到没有id属性和name属性为空的情况,这时候就需要先定位iframe

        2.定位元素八种方法同样适用,这里我可以通过tag先定位到,也能达到同样效果

    四、释放iframe

        1.当iframe上的操作完后,想重新回到主页面上操作元素,这时候,就可以用switch_to_default_content()方法返回到主页面

    from selenium import webdriver
    driver = webdriver.Chrome()
    driver.get("https://mail.163.com/")
    driver.implicitly_wait(10)
    #点击密码登录在这里
    driver.find_element_by_id("lbNormal").click()

    #切换iframe
    # driver.switch_to_frame("x-URS-iframe1559570723916.8506")
    iframe = driver.find_element_by_tag_name("iframe")
    driver.switch_to_frame(iframe)
    #输入Email账号
    driver.find_element_by_name("email").send_keys("123")
    #输入passwd
    driver.find_element_by_name("password").send_keys("111")
    # 没点击操作前,判断选项框状态
    s = driver.find_element_by_id("un-login").is_selected()
    print(s)
    #点击十天免登录--- 复选框单选
    driver.find_element_by_id("un-login").click()
    # 点击后,判断元素是否为选中状态
    r = driver.find_element_by_id("un-login").is_selected()
    print(r)
    #点击登录
    driver.find_element_by_id("dologin").click()

    # 释放iframe,重新回到主页面上
    driver.switch_to_default_content()
    #点击登录
    driver.find_element_by_id("dologin").click()
    #退出浏览器
    driver.quit()
  • 相关阅读:
    python中重要的模块--asyncio
    Mysql连接报错:1130-host ... is not allowed to connect to this MySql server如何处理
    驱动精灵扩展版(集成万能网卡驱动)无法自动识别网卡的解决方案
    ROS HTB限速失败原因分析和需注意事项
    按键精灵saystring无法使用的几种解决方案
    ESXI5-WIN2008R2安装域控以及额外域笔记
    centos如何使用utc时间
    NFS的安装以及windows/linux挂载linux网络文件系统NFS
    用命令行方式关闭CentOS防火墙
    CentOS6.4 上搭建NIS网络信息服务器
  • 原文地址:https://www.cnblogs.com/Teachertao/p/10970578.html
Copyright © 2011-2022 走看看