zoukankan      html  css  js  c++  java
  • webdriver定位frame内元素_以163邮箱登录为例

    一、frame和iframe区别
      Frame与Iframe两者可以实现的功能基本相同,不过Iframe比Frame具有更多的灵活性。frame是整个页面的框架,iframe是内嵌的网页元素,也可以说是内嵌的框架。
      Iframe标记又叫浮动帧标记,可以用它将一个HTML文档嵌入在一个HTML中显示。它和Frame标记的最大区别是在网页中嵌入的<Iframe></Iframe>所包含的内容与整个页面是一个整体,而<Frame></Frame>所包含的内容是一个独立的个体,是可以独立显示的。另外,应用Iframe还可以在同一个页面中多次显示同一内容,而不必重复这段内容的代码。

    二、163登录界面

      1.打开http://mail.163.com登录页面
      2.用firebug定位登录框
      3.鼠标停留在左下角(定位到iframe位置)时,右上角整个登录框显示灰色,说明iframe区域是整个登陆框域

      4.iframe的ID也是随机生成
      关于怎么查找当前页面iframe可借助Try XPath,相关介绍:《元素定位工具:Try XPath》

    三、定位frame的几种方式
      driver.switchTo.frame(0) #用frame的index来定位,第一个是0
      driver.switchTo.frame("frame_id") #用id来定位
      driver.switchTo().frame("frame_name") #用name来定位
      driver.switchTo().frame(driver.findElement(By.tagName("ifram"))) #用WebElement来定位
      driver.switchTo().parentFrame() #跳转到父级iframe
      driver.switchTo().defaultContend() #跳转到默认iframe
      以上是java语法下的方法调用,思路可套用到其他语言中去

    四、解决方案
      1.使用switch_to.frame(index)切换到frame下

    from selenium import webdriver
    
    driver = webdriver.Firefox()
    
    driver.get("https://mail.163.com/")
    driver.switch_to.frame(2)
    driver.find_element_by_xpath("//input[@data-loginname='loginEmail']").clear()
    driver.find_element_by_xpath("//input[@data-loginname='loginEmail']").send_keys("user_name")
    driver.find_element_by_xpath("//input[@class='j-inputtext dlpwd']").clear()
    driver.find_element_by_xpath("//input[@class='j-inputtext dlpwd']").send_keys("password")
    driver.find_element_by_xpath("//a[@id='dologin']").click()
    driver.quit()

      2.使用WebElement来定位

  • 相关阅读:
    深度学习之TensorFlow(一)——基本使用
    64位win10+cuda8.0+vs2013+cuDNN V5下Caffe的编译安装教程并配置matlab2014a 接口
    Win10+vs2012+cuda8.0的安装与配置
    图像处理与matlab实例之图像平滑(一)
    Windows下pycharm使用theano的方法
    Python中的支持向量机SVM的使用(有实例)
    混淆矩阵在Matlab中PRtools模式识别工具箱的应用
    模式识别与机器学习—bagging与boosting
    微服务架构下分布式事务解决方案——阿里GTS
    谈谈分布式事务
  • 原文地址:https://www.cnblogs.com/susanhonly/p/10762307.html
Copyright © 2011-2022 走看看