最近在學基于python+selenium的web自動化,在此記錄下學習的東西,也希望可以跟學習這技能的小伙伴們分享、交流。
iframe也稱作嵌入式框架,嵌入式框架和框架網頁類似,它可以把一個網頁的框架和內容嵌入在現有的網頁中。在selenium進行定位時,如果需要定位某個iframe內的元素,需要先切換到該iframe下,以下提供切換到指定iframe的方法:
# 啟動 Chrome 瀏覽器
driver = webdriver.Chrome()
#窗口最大化
driver.maximize_window()
#訪問網頁
driver.get("https://ke.qq.com/agency/index/index.html#tab=live_calendar")
#查找元素
driver.find_element_by_xpath('//a[contains(@class,"btns-enter-qq")]').click()
time.sleep(2)
#以上是進入頁面的代碼
方法一:使用iframe的name屬性,要使用的iframe的name屬性為‘login_frame_qq’
driver.switch_to.frame("login_frame_qq")
方法二:先找到這個iframe,再切換到它
driver.switch_to.frame(driver.find_element_by_name("login_frame_qq"))
方法三:通過下標定位到該iframe
#比如頂層頁面下內嵌了5個iframe,我們要切換到的iframe是第5個,可以這樣寫
driver.switch_to.frame(4)
還有一種方法,是在等待元素出現的時候,直接切換到該iframe
WebDriverWait(driver,10).until(EC.frame_to_be_available_and_switch_to_it((By.NAME,"login_frame_qq")))
#‘login_frame_qq’是iframe的name屬性
切換之后去點擊該iframe下的元素:
driver.find_element_by_id("switcher_plogin").click()
退出iframe的方法? -? 回到了最外層的html頁面:
driver.switch_to.default_content()
切換到上一級的iframe,如果沒有上一級,那就保留在當前頁面:文章來源:http://www.zghlxwxcb.cn/news/detail-593471.html
driver.switch_to.parent_frame()文章來源地址http://www.zghlxwxcb.cn/news/detail-593471.html
到了這里,關于selenium中,切換iframe的方法的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!