zoukankan      html  css  js  c++  java
  • (selenium+python)_UI自动化04_定位iframe框架内元素

    什么是iframe?

    iframe是HTML标签,作用是文档中的文档(即在当前 HTML 文档中嵌入另一个HTML文档),或者浮动的框架(FRAME)。iframe元素会创建包含另外一个文档的内联框架(即行内框架)。

    iframe框架内元素定位

    selenium中定位iframe内元素,需先切换到iframe框架内,然后再进行元素定位,否则会报错找不到元素。

    一、iframe常用切换

    driver.switch_to_frame(iframe_element)  # 切换至iframe
    driver.switch_to.default_content()  # 切回主页面
    driver.switch_to_parent_frame()  # 切回上级iframe

    二、iframe常见场景

    1,仅一个iframe框架

        切换至iframe-->定位iframe内元素-->切回首页-->定位目标元素

    2,存在多个iframe框架

        切换至iframe1-->定位iframe1内元素-->切回首页-->切换至iframe2-->定位iframe2内元素-->切回首页-->定位目标元素

    3,iframe框架内嵌另一iframe框架

        切换至iframe1-->切换至iframe2-->定位iframe2内元素-->切回首页-->定位目标元素

    三、实例

     网易邮箱登录,账号密码输入框元素在iframe内,故模拟网易邮箱登录如下:

     1 # 模拟网易邮箱登录
     2 from selenium import webdriver
     3 from time import sleep
     4  
     5 driver = webdriver.Chrome()
     6 driver.get("https://email.163.com/")  # 进入网易邮箱首页
     7 sleep(3)
     8  
     9 iframe_ele = driver.find_element_by_tag_name("iframe")  # 获取ifarme元素
    10 driver.switch_to.frame(iframe_ele)  # 切换到iframe框架
    11 driver.find_element_by_name("email").send_keys("AutoTest")  # 输入邮箱
    12 driver.find_element_by_name("password").send_keys("123456")  # 输入密码
    13 driver.find_element_by_id("dologin").click()  # 点击登录
  • 相关阅读:
    Server基本语句的用法
    C#本地文件下载以及FTP文件服务下载(以Pdf文件为例)
    一步一步理解AdaBoosting(Adaptive Boosting)算法
    Ubus简单理解
    基于SSL的select编程Linux系统
    SSL协议理解
    802.11r协议理解
    基于MQTT协议的云端proxy远程登陆
    基于mosquitto的MQTT客户端实现C语言
    模拟telnet协议C语言客户端程序
  • 原文地址:https://www.cnblogs.com/mini-monkey/p/12074947.html
Copyright © 2011-2022 走看看