一、常用方法介紹
基礎方法
方法 | 作用 |
---|---|
click() | 單擊元素,點一下放開 |
send_keys (value) | 模擬按鍵輸入。 |
clear() | 清除文本 |
submit() | 提交表單。 例如, 在搜索框輸入關鍵字之后的“回車” 操作, 就可以通過該方法模擬,有時候 submit()可以與 click()方法互換來使用, submit()同樣可以提交一個按鈕, 但 submit()的應用范圍遠不及 click()廣泛。 |
元素判斷
方法 | 作用 |
---|---|
get_attribute(name) | 獲得屬性值。 |
is_enabled() | 判斷一個元素是否可以操作 是:True ,否:False |
is_selected() | 判斷元素是否被選中 |
is_displayed() | 元素是否用戶可見 |
鼠標事件
在 WebDriver 中, 將這些關於鼠標操作的方法封裝在 ActionChains 類提供。
方法 | 作用 |
---|---|
context_click() | 右擊 |
double_click() | 雙擊 |
drag_and_drop(source, target) | 鼠標拖動, |
move_to_element() | 鼠標懸停 |
perform() | 執行所有 ActionChains 中存儲的行為 |
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from time import sleep
# 啟動瀏覽器
driver = webdriver.Chrome(executable_path="D:\\drivers\\chromedriver.exe")
# 打開百度網頁
driver.get("http://www.baidu.com/")
driver.maximize_window()
driver.find_element_by_css_selector("#kw").send_keys("python")
element = driver.find_element_by_css_selector("#kw")
sleep(3)
# 雙擊操作
ActionChains(driver).double_click(element).perform()
sleep(3)
# 右擊操作
ActionChains(driver).context_click(element).perform()
sleep(3)
# 鼠標懸停
above = driver.find_element_by_css_selector(".pf")
ActionChains(driver).move_to_element(above).perform()
sleep(4)
driver.quit()
鍵盤事件
Keys()類提供了鍵盤上幾乎所有按鍵的方法。 前面了解到, send_keys()方法可以用來模擬鍵盤輸入, 除此 之外, 我們還可以用它來輸入鍵盤上的按鍵, 甚至是組合鍵, 如 Ctrl+A、 Ctrl+C 等。
方法 | 作用 |
---|---|
send_keys(Keys.BACK_SPACE) | 刪除鍵(BackSpace) |
send_keys(Keys.SPACE) | 空格鍵(Space) |
send_keys(Keys.TAB) | 制表鍵(Tab) |
send_keys(Keys.ESCAPE) | 回退鍵(Esc) |
send_keys(Keys.ENTER) | 回車鍵(Enter) |
send_keys(Keys.CONTROL,'a') | 全選(Ctrl+A) |
send_keys(Keys.CONTROL,'c') | 復制(Ctrl+C) |
send_keys(Keys.CONTROL,'x') | 剪切(Ctrl+X) |
send_keys(Keys.CONTROL,'v') | 粘貼(Ctrl+V) |
send_keys(Keys.F1) | 鍵盤 F1 |
send_keys(Keys.F..) | 鍵盤 F.. |
send_keys(Keys.F12) | 鍵盤 F12 |
使用
from selenium import webdriver
# 引入 Keys 模塊
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
# 輸入框輸入內容
driver.find_element_by_id("kw").send_keys("seleniumm")
# 刪除多輸入的一個 m
driver.find_element_by_id("kw").send_keys(Keys.BACK_SPACE)
# 輸入空格鍵+“教程”
driver.find_element_by_id("kw").send_keys(Keys.SPACE)
driver.find_element_by_id("kw").send_keys("教程")
# ctrl+a 全選輸入框內容
driver.find_element_by_id("kw").send_keys(Keys.CONTROL, 'a')
# ctrl+x 剪切輸入框內容
driver.find_element_by_id("kw").send_keys(Keys.CONTROL, 'x')
# ctrl+v 粘貼內容到輸入框
driver.find_element_by_id("kw").send_keys(Keys.CONTROL, 'v')
# 通過回車鍵來代替單擊操作
driver.find_element_by_id("su").send_keys(Keys.ENTER)
driver.quit()
下拉框選擇
當我們遇到下拉框元素select類型時 ,我們需要用到Select對象來操作
Select 對象地址
from selenium.webdriver.support.ui import Select
Select對象使用
創建對象
element = driver.find_element_by_id("sel")
select=Select(element)
選擇選項值
方法 | 作用 |
---|---|
select.select_by_index(index) | 根據索引選擇 |
select.select_by_value(value) | 根據value值選擇 |
select.select_by_visible_text(text) | 根據文本信息選擇 |
取消選項選擇,僅用於復選下拉框
方法 | 作用 |
---|---|
select.deselect_all() | 取消全部選擇項 |
select.deselect_by_index() | 根據索引取消某一項 |
select.deselect_by_value() | 根據value值取消某一項 |
select.deselect_by_visible_text() | 根據文本信息取消 |
獲取信息
方法 | 作用 |
---|---|
select.first_selected_option | 獲取第一個被選中項 |
select.all_selected_options | 獲取所有的選中項 |
select.options | 獲取所有選項 |
select.is_multiple | 是否多選下拉框 |