zoukankan      html  css  js  c++  java
  • 自动化测试基础篇--Selenium iframe定位问题

    摘自https://www.cnblogs.com/sanzangTst/p/7473437.html

    有时候我们在定位的途中发现一个现象,元素就在那儿,不离不去,但是我们怎么整就是定不了位,这个时候就要具体网页的特殊性。这里介绍如果遇到了iframe的时候我们怎么处理。
    一、frame和iframe区别
      Frame与Iframe两者可以实现的功能基本相同,不过Iframe比Frame具有更多的灵活性。 frame是整个页面的框架,iframe是内嵌的网页元素,也可以说是内嵌的框架
    Iframe标记又叫浮动帧标记,可以用它将一个HTML文档嵌入在一个HTML中显示。它和Frame标记的最大区别是在网页中嵌入 的<Iframe></Iframe>所包含的内容与整个页面是一个整体,而<Frame>< /Frame>所包含的内容是一个独立的个体,是可以独立显示的。另外,应用Iframe还可以在同一个页面中多次显示同一内容,而不必重复这段内 容的代码。
    二、以网易邮箱(163邮箱)登录为例
    使用iframe最多的就是网易的邮箱,恰巧我们经常的会拿网易的邮箱来做登录的练习,结果发现整死都定不了位,下面我们一步一步的解析163邮箱登录。
    第一步:打开登录页面
    这个没什么好说的,每个测试用例的第一步都是打开浏览器,打开需求网页。
    复制代码
    1 #!/usr/bin/env python
    2 # -*- coding: utf-8 -*-
    3 from selenium import webdriver
    4 import time
    5 url = 'http://mail.163.com/'
    6 browser = webdriver.Firefox()
    7 browser.get(url)
    8 time.sleep(3)
    复制代码
    第二步:定位元素
    我们先通过firebug看看这个和我们平常的网页有什么不同,我们以百度为例;
    通过对比发现,百度的搜索框是直接在Top Window上,而163邮箱的输入框在iframe#x-URS-iframe上,这就是iframe。我们怎么定位呢?
  • 相关阅读:
    使用docker-client创建NFS挂载
    递归遍历JSON树
    electron-builder中NSIS相关配置
    nodejs调试基础【转载】
    node-java模块
    NodeJs中使用jQuery?
    如何实现electron多页面间通信
    转载:【知乎Live】狼叔:如何正确的学习Node.js
    js对象替换键值名称
    Eclipse 调试 darknet 代码
  • 原文地址:https://www.cnblogs.com/yuer20180726/p/10789250.html
Copyright © 2011-2022 走看看