多级定位:单点策略页面切换
-
切换进入iframe页面
多层网页嵌套(页面有a,b两个frame,其中b在a内,要定位b的内容则需要先定位到a,再切到b)
1)switch_to_frame()方法,表示把当前定位主题切换到frame里,其参数必须是id或name -
2
再跳回到主框架页:driver.switch_to.default_content()
或者:switch_to_default_content()#跳转主框架页 -
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: