程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

python自動化測試selenium(四)切換頁面、切換窗口

編輯:Python

一、切換頁面
如果定位元素失敗(拋出NoSuchElementException),調查網頁源代碼,發現這個元素位於一個frame或iframe標記的元素下的子網頁(html標記)裡,那麼此時需要切換Frame。

切換方法一:使用frame或iframe標記的元素的id或name屬性值來作為切換條件

switch_to.frame() 將當前定位的主體切換為frame/iframe表單的內嵌頁面中
switch_to.default_content() 跳回最外層的頁面

 driver.switch_to.default_content()
driver.switch_to.frame("MAINPAGE")
driver.find_element(By.XPATH, "//*[@id='menuBottom']/div[5]/a/div").click()

二、切換窗口
​ 頁面是存在多窗口的,但是selenium默認焦點只會在主窗口上的所有元素,不切換窗口,就不能操作除主窗口以外的窗口內元素。

每個窗口都有唯一的一個句柄值,那麼我們就可以通過句柄值來完成窗口的切換操作

​ 方法:
​ 1)、driver.current_window_handle (獲取當前的句柄值)
​ 2)、driver.window_handles ( 獲取當前由driver啟動所有窗口句柄)
​ 3)、driver.switch_to.window(handle) —> 切換窗口

from selenium import webdriver
driver = webdriver.Chrome()
driver.get('file:///D:/%E6%A1%8C%E9%9D%A2/page/%E6%B3%A8%E5%86%8C%E5%AE%9E%E4%BE%8B.html')
driver.find_element_by_id('ZCB').click()
# 1).切換窗口操作,driver.window_handles 獲取driver啟動的所有窗口句柄
handles = driver.window_handles
# 2).切換窗口工作
driver.switch_to.window(handles[-1])
driver.find_element_by_id('userB').send_keys('admin9')
driver.quit()

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved