1. 瀏覽器打開新的窗口時,需要切換到新的窗口上
# 切換瀏覽器窗口
wins = driver.window_handles
driver.switch_to.window(wins[-1]) # 先獲取當前所有窗口,然后通過下標進行切換
2. 定位iframe的 name進行切換,沒有name用下標,切換之后只能到iframe的頁面上定位元素
driver.switch_to.frame("login_frame_qq")
3. alert 切換
alert = driver.switch_to.alert # 切換至alert上面
print(alert.text) # 獲取彈框文本
alert.accept() # 確認彈窗
4. 鼠標懸浮
# 導包 ActionChains
from selenium.webdriver.common.action_chains import ActionChains
# 1) 找到鼠標要操作的元素
ele = driver.find_element(By.XPATH, "//span[@name='tj_settingicon']")
# 2) 實例化ActionChains
ac = ActionChains(driver)
# 3) 調用鼠標行為
ac.move_to_element(ele)
# 4) 調用perform() 來執行鼠標動作
ac.perform()
# 2) 3) 4)種方法寫在一起
ActionChains(driver).move_to_element(ele).perform()
5. select 下拉框選擇
from selenium.webdriver.support.select import Select
select_element = driver.find_element(By.XPATH, "//select[@id='sid']")
# 將定位到的元素放到 Select()中
s = Select(select_element)
s.select_by_index(2) # 根據下標來選擇
s.select_by_value("doc") # 根據value來選擇
s.select_by_visible_text("RTF 文件") # 根據文本來選擇
6. 鍵盤操作
from selenium.webdriver.common.keys import Keys
search = driver.find_element(By.XPATH, "//*[@id='kw']")
search.send_keys("騰訊課堂", Keys.ENTER)
7. 網頁滾動條操作
tencent_class = driver.find_element(By.XPATH, "//a[@aria-label='百度百科']") # 獲取元素
driver.execute_script('aguments[0].scrollIntoview(false)', tencent_class)
# 將滾動條滑至元素位置 scrollIntoview(false) false 將元素顯示在底部,true顯示在頂部
# 操作js
pha_js = "var a = arguments[0];a.readOnly=false;a.value='2020-04-01';" # 編寫js命令
ele = driver.find_element(By.XPATH, "//*[@id='train_date']")
driver.excute_script(pha_js,ele)
8. 上傳操作
9. 頁面返回、刷新
driver.back() # 頁面返回上一頁
driver.refresh() # 頁面刷新