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