python-selenium-框架定位的处理frame

这篇具有很好参考价值的文章主要介绍了python-selenium-框架定位的处理frame。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Frame框架是Html框架结构中一种布局格式,共有三种形式:frameset、frame、iframe

frame是整个页面的框架,iframe是内嵌的网页元素,也可以说是内嵌的框架

页面比较复杂,页面套页面,定位第几层窗口,找元素时,要先看元素在哪个框架,找到框架在定位元素。
框架也是某一个具体页面的元素

一般进入iframe

switch_to.frame(frame_reference):切换iframe框架的方法,参数frame_reference
是用于定位iframe,可以传ID,NAME等,还可以传递一个webElement对象
1:
 driver.switch_to.frame(driver.find_element(By.XPATH,'//*[@id="g_iframe"]'))

2:
driver.switch_to.frame(x)#x:数frame一共有多少个,填写下标,从零开始
3:
#通过id定位
driver.switch_to.frame("g_iframe")

退出/释放iframe    注意:在进入ifarme框架里面后,操作完成需要跳出ifarme框架

driver.switch_to_frame(iframe_element) #切换至iframe

driver.switch_to.default_content() #切回主页面

driver.switch_to_parent_frame() #切回上级iframe

遇到了所要定为的元素在框架里面,必须先进入元素所在的框架里面,否则不能直接定位元素

pythoniframe框架如何定位,python-selenium自动化,selenium,测试工具

 看到我们要的东西,发现不进入框架里面无法直接拿到了想要的东西

pythoniframe框架如何定位,python-selenium自动化,selenium,测试工具

一层一层的收发下,需要的东西在一个框架里面,所有我们需要进去框架,然后定位元素文章来源地址https://www.toymoban.com/news/detail-669601.html

from selenium import webdriver
from selenium.webdriver.common.by import By
import time
from selenium.webdriver.chrome.options import Options
#取消浏览器中的自动化程序正在控制浏览器
opt = Options()
opt.add_experimental_option('excludeSwitches',['enable-automation'])
try:
    # 1:打开浏览器
    driver = webdriver.Chrome(options=opt)
    # 2:输入你的网站
    driver.get('https://music.163.com/#/playlist?id=2075587022')
    driver.implicitly_wait(30)
    #进入框架
    driver.switch_to.frame(driver.find_element(By.XPATH,'//*[@id="g_iframe"]'))
    asd=driver.find_element(By.XPATH,'/html/body/div[3]/div[1]/div/div/div[3]/div/div[2]/div[2]/div[1]/div[2]/div[1]/div').text#copy完整的xpath
    print(asd)
    #退出框架
    driver.switch_to.default_content() # 切回主页面
    print(driver.page_source)

except Exception as E:
    print(E)
finally:
    driver.quit()

from selenium import webdriver
from selenium.webdriver.common.by import By
import time
from selenium.webdriver.chrome.options import Options
#取消浏览器中的自动化程序正在控制浏览器
opt = Options()
opt.add_experimental_option('excludeSwitches',['enable-automation'])
try:
    # 1:打开浏览器
    driver = webdriver.Chrome(options=opt)
    # 2:输入你的网站
    driver.get('https://music.163.com/#/playlist?id=2075587022')
    driver.implicitly_wait(30)
    #进入框架
    driver.switch_to.frame(driver.find_element(By.XPATH,'//*[@id="g_iframe"]'))
    asd=driver.find_elements(By.XPATH,'/html/body/div[3]/div[1]/div/div/div[3]/div/div[2]/div[2]/div')
    for i in asd:
        print(i.text)
    
    #退出框架

except Exception as E:
    print(E)
finally:
    driver.quit()

到了这里,关于python-selenium-框架定位的处理frame的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python-selenium学习笔记-css选择元素

    方法名:find_element(By.CSS_SELECTOR, \\\"元素名\\\") find_elements找所有 示例: 执行结果:  代表寻找第一个类名为plant的元素, 等效于根据CLASS寻找元素 若要 根据tag名 寻找,不用加“.”, 直接写tag名称即可,如下: 结果:   根据id寻找用“#”+id名, 中间不能有空格 结果: 子元素是

    2024年03月23日
    浏览(29)
  • python-selenium ”selenium.common.exceptions.WebDriverException: Message: unknown error: cannot find

    1、确认当前的Google Chrome版本号与chromedriver版本号一致,如果不一致,到http://chromedriver.storage.googleapis.com/index.html下载与当前chrome浏览 器对应的驱动。 http://selenium-release.storage.googleapis.com/index.html selenium下载地址; 2、将chromedriver.exe文件放入python的scripts目录,并将该scripts目录

    2024年02月04日
    浏览(30)
  • 分享学习:供电公司周考线上作业自动答题流程python-selenium

    供电公司周考考试内容包括单选题、多选题和判断题,题库涉及到安规、技能实操、技能理论,下面分享实现自动答题功能。要实现Python自动答题需要浏览器驱动,需要安装第三方库,配置最终环境,如图1所示。 图1 第一步:下载谷歌浏览器并配置谷歌驱动 使用selenium时,要

    2024年02月03日
    浏览(24)
  • Python-selenium库安装及Edge浏览器驱动配置(Anaconda环境下)

    文章使用的环境是在Anaconda下配置的虚拟环境,在Anacanda下的虚拟环境下下载安装库为如下步骤:  1.1. 激活并且进入使用的环境中(xxx为虚拟环境的名称) 1.2. 进入到所需的环境中后,下载并安装seleniu库 2.1. 查看自己Edge浏览器的版本:         在Edge浏览器的搜索栏里输入地

    2024年04月10日
    浏览(48)
  • selenium对于页面改变的定位元素处理办法

    在学习selenimu中,总是发现元素定位不到,想了各种办法,最后总结大致有两个原因。 1.等待时间不够,页面还没有完全渲染就进行操作,使用time模块进行等待。 2.换了页面后,发现定位不到元素,因为浏览器还停留在最开始的页面,处理办法,加一行代码。 运行结果: 缺

    2024年02月01日
    浏览(31)
  • 基于Java+Selenium的WebUI自动化测试框架(一)---页面元素定位器

     🔥 交流讨论: 欢迎加入我们一起学习! 🔥 资源分享 : 耗时200+小时精选的「软件测试」资料包 🔥  教程推荐: 火遍全网的《软件测试》教程   📢 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 对于自动化测试,尤其是UI的自动化测试。是很多做黑盒功能测试的同

    2024年03月17日
    浏览(51)
  • Python - selenium-元素定位

    目录 一.前序工作 二.webdriver测试 三.元素定位方式    根据ID定位                a = wd.find_element(By.ID, \\\'值\\\') 根据NAME定位                 a = wd.find_element(By.NAME, \\\'值\\\') 根据CLASS_NAME定位            a = wd.find_element(By.CLASS_NAME, \\\'值\\\')   根据TAG_NAME定位      

    2024年02月01日
    浏览(27)
  • Python selenium元素的定位

    视频版教程:一天掌握python爬虫【基础篇】 涵盖 requests、beautifulsoup、selenium 对象的定位应该是自动化测试的核心,要想操作一个对象,首先应该识别这个对象。一个对象就是一个人一样,他 会有各种的特征(属性),如比我们可以通过一个人的身份证号,姓名,或者他住在

    2024年02月08日
    浏览(26)
  • Python---selenium 使用及定位

    使用find_element_by_*() 方法只需导入 from selenium import webdriver,使用 find_element() 方法除了导入 from selenium import webdriver ,还要导入 from selenium.webdriver.common.by import By。 Selenium4 提供了 8 种定位(单)节点的方法,如下表所示: 方法说明 find_element(By.ID) 通过 id 属性值定位节点 find_

    2024年02月03日
    浏览(33)
  • Python学习笔记——selenium定位iframe和元素(快速定位)

    在使用selenium过程,发现定位iframe、元素比较困难,所以制作一个辅助小工具。  当前界面没有,调整driver位置 1.Xpath定位  2,.其他定位方式 获取元素、操作失败重复操作,直至操作成功。

    2024年02月13日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包