ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

记录学习selenium中遇到的一个关于frame层的问题

2021-09-12 23:29:49  阅读:112  来源: 互联网

标签:记录 selenium frame driver element switch div find


直接上流程:

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层的路径,是否为层层嵌入或者并行关系;多次尝试使用其它方法切入 。

标签:记录,selenium,frame,driver,element,switch,div,find
来源: https://blog.csdn.net/qq_60566718/article/details/120257801

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有