selenium之Alert彈出框處理、滑鼠操作、鍵盤操作
(一)Alert彈出框處理
瀏覽器彈出框:
1.使用switch_to方法先切換到瀏覽器彈出框,
driver.switch_to.alert
2.ActionChains類提供了一系列的操作方法
dismiss(): 解散現有警告框 (否)
accept(): 接受現有警告框 (是)
text :獲取彈出框里的內容
send_keys(): 在彈出框里輸入文字(如果可以輸入的話)
下邊以百度搜索設定彈框處理

代碼如下:
from time import sleep
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
driver.maximize_window()
# 1)定位到要懸停的元素
loc = (By.XPATH,'//span[@id="s-usersetting-top"]')
ele = driver.find_element(*loc)
ele.click()
#滑鼠懸浮操作
#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()
# 1)等待下拉串列中的元素可見
loc = (By.XPATH,'//a[text()="搜索設定"]')
WebDriverWait(driver,10).until(EC.visibility_of_element_located(loc))
driver.find_element(*loc).click()
#點擊“保存設定”按鈕
save_element = (By.XPATH,'//div[@id="se-setting-7"]//a[text()="保存設定"]')
WebDriverWait(driver,10).until(EC.visibility_of_element_located(save_element))
driver.find_element(*save_element).click()
# 等待彈框出現
WebDriverWait(driver,50).until(EC.alert_is_present())
#切換到警告框
alert = driver.switch_to.alert
#獲取警告框提示資訊
alert_text = alert.text
print(alert_text)
#點擊確定
alert.accept()
driver.quit()
(二)滑鼠操作
在webDriver中,與滑鼠操作相關的方法都封裝在ActionChains類中
ActionChains類提供了滑鼠操作的常用方法:
- perform():(執行ActionChains類中存盤的所有行為)來執行滑鼠操作
- context_click():右擊
- double_click():雙擊
- drag_and_drag():拖動
- move_to_element():滑鼠懸停
主要操作流程:
1.存盤滑鼠操作
2.perform()來執行滑鼠操作
以百度 設定為例
import time
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
driver.maximize_window()
# 滑鼠懸浮1,2,3,4,
# 1) 找到滑鼠要操作的元素
loc = (By.XPATH,'//span[@id="s-usersetting-top"]')
ele = driver.find_element(*loc)
ele.click()
# 2) 實體化Actionchains類
ac = ActionChains(driver)
# 3)呼叫滑鼠行為
ac.move_to_element(ele).click(ele)
# 4)呼叫perform()來執行滑鼠動作,
ac.perform()
# # 2)3)4)
# ActionChains(driver).move_to_element(ele).perform()
# 1)等待 下拉串列當中的元素可見
loc = (By.XPATH,'//a[text()="高級搜索"]')
WebDriverWait(driver,10).until(EC.visibility_of_element_located(loc))
# 2)選你想的元素
driver.find_element(*loc).click() # 觸發了高級搜索內容出現
time.sleep(7)
driver.quit()
(三)鍵盤操作
以下為常用的鍵盤操作
- 洗掉鍵 Keys.BACK_SPACE
- 空格鍵 Keys.SPACE
- 制表鍵 Keys.TAB
- 回退鍵 Keys.ESCAPE
- 回車鍵Keys.ENTER
- 全選(Keys.CONTROL,‘a’)
- 復制(Keys.CONTROL,‘c’)
- 剪切(Keys.CONTROL,‘x’)
- 粘貼(Keys.CONTROL,‘v’)
10.重繪鍵Keys.F5
代碼如下:
from selenium.webdriver.common.keys import Keys
from selenium import webdriver
import time
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome()
# driver.implicitly_wait(10) # 隱性等待
driver.get("http://www.baidu.com")
element = driver.find_element_by_id("kw") # WebElement物件 - 1個物件對應1個元素
# driver.find_elements_by_id("kw")
element.send_keys("selenium webdriverr",Keys.ENTER)
# element.send_keys(Keys.CONTROL,"c")
# 洗掉字母多出的r
element.send_keys(Keys.BACK_SPACE)
# 輸入空格鍵+ “教程”
element.send_keys(Keys.SPACE)
element.send_keys("教程")
#輸入組合鍵CTRL + a,全選輸入框內容
element.send_keys(Keys.CONTROL,'a')
#輸入組合鍵CTRL + x,剪切輸入框內容
element.send_keys(Keys.CONTROL,'x')
#輸入組合鍵CTRL + v,粘貼內容到輸入框
element.send_keys(Keys.CONTROL,'v')
#用回車鍵代替單擊操作
element.send_keys(Keys.ENTER)
time.sleep(5)
driver.quit()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/1520.html
標籤:其他
上一篇:diango專案配置及問題解決
