Frame框架是Html框架結(jié)構(gòu)中一種布局格式,共有三種形式:frameset、frame、iframe
frame是整個(gè)頁面的框架,iframe是內(nèi)嵌的網(wǎng)頁元素,也可以說是內(nèi)嵌的框架
頁面比較復(fù)雜,頁面套頁面,定位第幾層窗口,找元素時(shí),要先看元素在哪個(gè)框架,找到框架在定位元素。
框架也是某一個(gè)具體頁面的元素
一般進(jìn)入iframe
switch_to.frame(frame_reference):切換iframe框架的方法,參數(shù)frame_reference
是用于定位iframe,可以傳ID,NAME等,還可以傳遞一個(gè)webElement對象
1:
driver.switch_to.frame(driver.find_element(By.XPATH,'//*[@id="g_iframe"]'))
2:
driver.switch_to.frame(x)#x:數(shù)frame一共有多少個(gè),填寫下標(biāo),從零開始
3:
#通過id定位
driver.switch_to.frame("g_iframe")
退出/釋放iframe? ? 注意:在進(jìn)入ifarme框架里面后,操作完成需要跳出ifarme框架
driver.switch_to_frame(iframe_element) #切換至iframe
driver.switch_to.default_content() #切回主頁面
driver.switch_to_parent_frame() #切回上級iframe
遇到了所要定為的元素在框架里面,必須先進(jìn)入元素所在的框架里面,否則不能直接定位元素
?看到我們要的東西,發(fā)現(xiàn)不進(jìn)入框架里面無法直接拿到了想要的東西
文章來源:http://www.zghlxwxcb.cn/news/detail-669601.html
一層一層的收發(fā)下,需要的東西在一個(gè)框架里面,所有我們需要進(jìn)去框架,然后定位元素文章來源地址http://www.zghlxwxcb.cn/news/detail-669601.html
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
from selenium.webdriver.chrome.options import Options
#取消瀏覽器中的自動(dòng)化程序正在控制瀏覽器
opt = Options()
opt.add_experimental_option('excludeSwitches',['enable-automation'])
try:
# 1:打開瀏覽器
driver = webdriver.Chrome(options=opt)
# 2:輸入你的網(wǎng)站
driver.get('https://music.163.com/#/playlist?id=2075587022')
driver.implicitly_wait(30)
#進(jìn)入框架
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
#取消瀏覽器中的自動(dòng)化程序正在控制瀏覽器
opt = Options()
opt.add_experimental_option('excludeSwitches',['enable-automation'])
try:
# 1:打開瀏覽器
driver = webdriver.Chrome(options=opt)
# 2:輸入你的網(wǎng)站
driver.get('https://music.163.com/#/playlist?id=2075587022')
driver.implicitly_wait(30)
#進(jìn)入框架
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()
到了這里,關(guān)于python-selenium-框架定位的處理frame的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!