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:
selenium iframe操作switch_to_frame_第1张图片

你可能感兴趣的:(UI-API自动化,python,selenium,定位)