IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 记录学习selenium中遇到的一个关于frame层的问题 -> 正文阅读

[开发测试]记录学习selenium中遇到的一个关于frame层的问题

直接上流程:

1、开始登录

?2、点击我的私海

?3、切入frame层

发现此时frame的路径为:/html/body/div[5]/div[1]/div[3]/iframe[2]

4、点击客户新增在这里发现也有frame层,但是发现一直无法切入

?5、通过上述两个frame的路径对比,后来才明白第3步、第4步的这两个frame层并不是层层嵌套的意思,需要先退出第3步的frame层,再切入第4步中的frame层。

此时的frame层路径是:

/html/body/div[2]/table/tbody/tr[2]/td[2]/div/table/tbody/tr[2]/td[2]/div/iframe

且在此时发现第3步的frame层路径变为:

/html/body/div[6]/div[1]/div[3]/iframe[2]

6、尝试在第三步与第四步添加退出第三步frame层的代码发现能正确切入了该frame层,但需要通过绝对路径的方式,这点暂时还不是很明白。

7、整体使用代码如下:

# 导入模块
from selenium import webdriver
import time
from selenium.webdriver.common.by import By
# 打开浏览器
driver=webdriver.Chrome()
driver.implicitly_wait(5)
driver.get('http://120.55.190.222:9090/loginController.do?login2')
driver.maximize_window()
# 登录
driver.find_element(By.ID,'userName').send_keys('SQOA001')
driver.find_element(By.ID, 'password' ).send_keys('sqtest')
driver.find_element(By.ID, 'but_login').click()
# 新增客户
driver.find_element_by_css_selector('ul[id="side-menu"]>li:nth-child(3)').click()
driver.find_element_by_xpath('/html/body/div[4]/nav/div[2]/div[1]/ul/li[3]/ul/li[1]/a/span').click()
# 进入frame层
driver.switch_to.frame('iframe1')
driver.find_element_by_id('add').click()
# 退出frame层
driver.switch_to.parent_frame()
# 重新进入另外的frame层
# driver.switch_to.frame('JDG16314320511377') #定位不成功
# driver.switch_to.frame(driver.find_element_by_name('JDG16314320511377')) #定位不成功
#driver.switch_to.frame(driver.find_element_by_css_selector('iframe[name="JDG16314414636411"]')) #定位不成功
driver.switch_to.frame(driver.find_element_by_xpath('/html/body/div[2]/table/tbody/tr[2]/td[2]/div/table/tbody/tr[2]/td[2]/div/iframe')) # 成功切入frame层
# 填写新客户信息
driver.find_element_by_id('aac003').send_keys("1111111")
time.sleep(2)
# 退出
driver.close()

8、自我总结

遇到元素无法定位时先查看是否有frame层;比较frame层的路径,是否为层层嵌入或者并行关系;多次尝试使用其它方法切入?。

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-09-14 13:39:31  更:2021-09-14 13:40:08 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/21 2:03:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码