driver.switch_to.frame()


一般情況下,我們可以直接通過id或者name切換到frame。

driver.switch_to.frame()
小括號里面填iframe標簽的id,或name值
如果沒有id,或者name,我們可以先定位到iframe標簽,再切換到frame
# 根據標簽名切換
iframe = driver.find_element_by_tag_name("iframe")
driver.switch_to.frame(iframe)

當然我們也可以通過其他頁面元素定位的方式。
頁面元素定位的8種方式:
  • find_element_by_id
  • find_element_by_name
  • find_element_by_xpath
  • find_element_by_link_text
  • find_element_by_partial_link_text
  • find_element_by_tag_name
  • find_element_by_class_name
  • find_element_by_css_selector

接下來通過兩個具體的實例了解下driver.switch_to.frame()

1、模擬登陸163郵箱

# coding:utf-8

from selenium import webdriver

# 實例化
driver = webdriver.Chrome()
# 發起請求
driver.get("http://mail.163.com/")
# 隱式等待10s
driver.implicitly_wait(10)

# 切換iframe
# 根據標簽名切換
iframe = driver.find_element_by_tag_name("iframe")
driver.switch_to.frame(iframe)

# 定位元素並向input標簽里輸入值
driver.find_element_by_name("email").send_keys("***")   # 輸入賬號
driver.find_element_by_name("password").send_keys("***")    # 輸入密碼

# 點擊登陸
# driver.find_element_by_id("dologin").click()

# 釋放iframe,重新回到主頁面
driver.switch_to.default_content()

 2、模擬登陸豆瓣

from selenium import webdriver

# 實例化
driver = webdriver.Chrome()
# 發起請求
driver.get("https://www.douban.com")

# 切換frame
iframe = driver.find_element_by_tag_name("iframe")
driver.switch_to.frame(iframe)

# 定位元素
driver.find_element_by_class_name("account-tab-account").click()
driver.find_element_by_id("username").send_keys("***")  # 輸入用戶名
driver.find_element_by_id("password").send_keys("***")  # 輸入密碼

# 點擊登陸豆瓣
# driver.find_element_by_link_text('登陸豆瓣')
driver.find_element_by_class_name("btn").click()


# driver.quit()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM