python + selenium 之切換iframe

這個沒什么難的,主要就是需要區(qū)分靜態(tài)id和動態(tài)id,

一.靜態(tài)id可以直接通過id定位,動態(tài)id則需要通過xpath定位

from seleniumimport webdriver

from selenium.webdriver.support.uiimport WebDriverWait

import time

driver = webdriver.Chrome()#加載瀏覽器

driver.maximize_window()#最大化窗口

driver.implicitly_wait(10)

url ="https://vipmail.163.com/?from=fmail"

driver.get(url)

time.sleep(5)

#創(chuàng)建顯示等待

wait = WebDriverWait(driver,20,0.2)

time.sleep(2)

driver.switch_to.frame(driver.find_element_by_xpath("http://iframe[starts-with(@id, 'x-URS-iframe')]"))

driver.find_element_by_name("email").send_keys("111")

注:

contains() 包含字符串**

starts-with() 以字符串開始

ends-with() 以字符串

二.沒有id或者name屬性可以通過tagname定位。需要注意的是:driver.find_elements_by()

from seleniumimport webdriver

from selenium.webdriver.support.uiimport WebDriverWait

import time

driver = webdriver.Chrome()#加載瀏覽器

driver.maximize_window()#最大化窗口

driver.implicitly_wait(10)

url ="https://mail.126.com/"

driver.get(url)

time.sleep(5)

#創(chuàng)建顯示等待

wait = WebDriverWait(driver,20,0.2)

time.sleep(2)

driver.find_element_by_id("lbNormal").click()

#driver.switch_to.frame(driver.find_element_by_xpath("http://iframe[starts-with(@id, 'x-URS-iframe')]"))

driver.switch_to.frame(driver.find_elements_by_tag_name("iframe")[0])

driver.find_element_by_name("email").send_keys("******")

driver.find_element_by_name("password").send_keys("********")

driver.find_element_by_id("dologin").click()

time.sleep(3)

driver.quit()

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容