selenium常見元素操作之窗口切換--window

from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
import time

一、打開瀏覽器

driver = webdriver.Chrome()

二、登錄到百度首頁

driver.get(“http://www.baidu.com”)

三、輸入檸檬班並點擊百度一下

driver.find_element_by_id(‘kw’).clear() #清除文本
driver.find_element_by_id(‘kw’).send_keys(“檸檬班”) #輸入檸檬班
driver.find_element_by_id(‘su’).click() #點擊百度一下

四、等待

locator = (By.XPATH,’//a[text()="_騰訊課堂官網"]’)
WebDriverWait(driver,20).until(EC.visibility_of_element_located(locator))

五、點擊 “檸檬班_騰訊課堂官網”,打開新的窗口

#方式一:driver.find_element_by_xpath(’//a[text()="_騰訊課堂官網"]’).click()
#方式二:driver.find_element_by_xpath(*locator).click()
driver.find_element(*locator).click()

六、切換窗口

方式一:

step1.獲取所有的窗口

#handles = driver.window_handles
##print(handles) #按照窗口出現的順序,最後一個就是最近打開的窗口。
##print(driver.current_window_handle)#拿到當前窗口的handles

step2.切換新的窗口

#driver.switch_to.window(handles[-1])
##print(“切換之後的窗口是:”,driver.current_window_handle)

方式二:

step1:獲取當前窗口數

handles = driver.window_handles #只有1個窗口

step2:執行打開新窗口的操作

driver.find_element(*locator).click() #本操作帶來了新窗口的出現—>2個窗口

step3:確認新的窗口出現了,再去操作,等待新窗口出現

#EC.new_window_is_opened #比窗口總數的大小 #傳一個窗口總數
WebDriverWait(driver,20).until(EC.new_window_is_opened(handles)) #比較窗口數2>1 #確認新窗口出現

step4:再次獲取窗口的handles

handles = driver.window_handles #2個窗口

step5:切換到新窗口

driver.switch_to.window(handles[-1])

七、新的窗口當中,點擊"課程"

#等待
locator1 = (By.XPATH,’//section//h2[contains(text(),“課程”)]’) #定位到課程菜單
WebDriverWait(driver,20).until(EC.visibility_of_element_located(locator1)) #等待課程菜單出現
driver.find_element(*locator1).click() #點擊課程菜單

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章