selenium iframe操作switch_to_frame

多级定位:单点策略页面切换

  1. 切换进入iframe页面
    多层网页嵌套(页面有a,b两个frame,其中b在a内,要定位b的内容则需要先定位到a,再切到b)
    1)switch_to_frame()方法,表示把当前定位主题切换到frame里,其参数必须是id或name

  2. 2
    再跳回到主框架页:driver.switch_to.default_content()
    或者:switch_to_default_content()#跳转主框架页

  3. 3

最后再跳回到主框架页:driver.switch_to.default_content()
或者switch_to_default_content()#跳转主框架页

多层网页嵌套(页面有a,b两个frame,其中b在a内,要定位b的内容则需要先定位到a,再切到b)
1)switch_to_frame()方法,表示把当前定位主题切换到frame里,其参数必须是id或name
2)再跳回到主框架页:driver.switch_to.default_content() #跳转主框架页

如果iframe没有id怎么办?
1.这里iframe的切换是默认支持id和name的方法的,
实际情况中会遇到没有id属性和name属性为空的情况,
这时候就需要先定位iframe
2.定位元素还是之前的八种方法同样适用,这里我可以通过tag先定位到,也能达到同样效果

from selenium import webdriver
driver = webdriver.Chrome()
driver.get('url')
#切换iframe
driver.switch_to_frame('iframd_id')
driver.find_element_by_id('your_id')

from selenium import webdriver
driver = webdriver.Chrome()
driver.get('url')
#切换iframe
iframe = driver.find_element_by_tag_name('iframe')
driver.switch_to_frame(iframe)
driver.find_element_by_css_selector('div[class="menuitem-container"]')
    tab_num = driver.find_elements_by_css_selector('li[class*="menuitem"]')
    print('tab_num is : ',tab_num)
    for index in range (tab_num):
        driver.choose_element_from_elements(index)
        name = text()
        print('name is ',name)
        if name == tabname:
            print('点选进入单点维护->{name}页面************* '.format(name=name))
            click()
            sleep(8)
driver.switch_to.default_content() #最后要记得跳转回到主框架页

示例html:
在这里插入图片描述

  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yuer011

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值