frame/iframe表单嵌套页面的应用。WebDrivr只能在一个页面上对元素识别与定位,对于在frame/iframe表单内嵌页面上的元素无法直接定位。这时需要使用 switch_to.frame()方法将当前定位的主题切换为frame/iframe表单内嵌页面中。

<html>
<body>
...
<iframe id="x-URS-iframe" ...>
<html>
<body>
...
<input name="email" >

 对于一些登录框的操作,必须先切换到iframe表单

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("http://www.126.com") driver.switch_to.frame('x-URS-iframe')
driver.find_element_by_name("email").clear()
driver.find_element_by_name("email").send_keys("username")
driver.find_element_by_name("password").clear()
driver.find_element_by_name("password").send_keys("password")
driver.find_element_by_id("dologin").click()
driver.switch_to.default_content() driver.quit()

switch_to.frame() 默认可直接取表单的id或 name 属性。如果没有可用的id或name属性,则可以通过下面的方式进行定位:

#先通过xpath定位到frame

i=driver.find_element_by_tag_name("iframe") driver.switch_to_frame(i)

#再将定位对象传给switch_to.frame()方法

driver.switch_to.parent_frame()

跳回最外层页面:switch_to.default_content()

最新文章

  1. 解密jQuery事件核心 - 委托设计(二)
  2. sshfs三步走----实用(mac)
  3. SpringBoot配置Email发送功能
  4. SQL 四种基本数据操作语句的基本使用
  5. Java中的字符串常量池
  6. sqlMapConfig.xml配置文件详解
  7. Hibernate 抓取策略fetch-1 (select join subselect)
  8. jsp页面编译成Servlet类文件
  9. javax.crypto.IllegalBlockSizeException: Input length must be multiple of 16 when decrypting with padded cipher--转载
  10. ThreadLocal学习记录
  11. WPF自定义控件(三)——Window
  12. Windows下 Scala开发环境搭建
  13. [转]svn 命令大全
  14. DEV中gridview常用属性的设置
  15. AIX6.1/11.2.0.3在有关数据库SWAP一个BUG
  16. Swift中文教程(四)--函数与闭包
  17. Python 项目实践三(Web应用程序)第五篇
  18. [Swift]LeetCode198. 打家劫舍 | House Robber
  19. react初入门
  20. oracle数据库创建分区表

热门文章

  1. Vue+Vant+Vuex实现本地购物车功能
  2. shell 概览
  3. PostgreSQL基础操作
  4. Celery 收下这捆芹菜!
  5. js-xlsx 一个实用的js 导出列表插件
  6. 干货!SQL性能优化,书写高质量SQL语句
  7. linux入门系列8--shell编程
  8. webpack进阶用法你都get到了么?
  9. Linux.cp命令总提示是否覆盖
  10. 聊一聊 InnoDB 引擎中的索引类型