前置條件
需要下載對應(yīng)的瀏覽器驅(qū)動歉秫,并放置到python文件夾下
需要使用到的模塊
from selenium import webdriver
from selenium.webdriver.common.by import By
1.生成瀏覽器對象并定位網(wǎng)頁
browser = webdriver.Chrome()
browser.get("http://localhost/selenium/myForm.html")
2.定位元素
username_input = browser.find_element(by=By.ID, value="id01") # 通過id獲取
password_input = browser.find_element(by=By.NAME, value="pwd") # 通過name獲取
single_sing = browser.find_element(by=By.CSS_SELECTOR, value="[value = 'chang']") # 通過CSS樣式表獲取
inputs = browser.find_elements(by=By.TAG_NAME, value="input") # 通過tag獲取
test_inputs = browser.find_elements(by=By.CLASS_NAME, value="小清新") # 通過類名獲取
a_link = browser.find_element(by=By.LINK_TEXT, value="轉(zhuǎn)跳百度") # 通過完整鏈接文本獲取鏈接對象
a2_link = browser.find_element(by=By.PARTIAL_LINK_TEXT, value="轉(zhuǎn)跳") # 通過模糊的鏈接文本獲取鏈接對象
button = browser.find_element(by=By.XPATH, value='/html/body/div/button') # 通過XPATH獲取元素對象
ex:通過find_elements
獲取符合條件的對象數(shù)組
a2_links = browser.find_elements(by=By.PARTIAL_LINK_TEXT, value="轉(zhuǎn)跳") # 獲取鏈接文本中包含 ‘跳轉(zhuǎn)’ 的鏈接對象數(shù)組
3.常用的元素操作
username_input = browser.find_element(by=By.ID, value="id01")
username_input.clear() # 清空文本框
username_input.send_keys("aaa") # 鍵入文本'aaa'
single_sing = browser.find_element(by=By.CSS_SELECTOR, value="[value = 'chang']")
single_sing.click() # 點擊
# 下拉框點擊
selector_view = browser.find_element(by=By.XPATH, value='//*[@id="id_sel1"]')
selector = Select(selector_view)
selector.select_by_visible_text("唱歌")
4.常用的瀏覽器操作
browser.quit() # 關(guān)閉瀏覽器
browser.close() # 關(guān)閉當(dāng)前頁面
browser.forward() # 瀏覽器前進(jìn)
browser.back() # 瀏覽器后退
handles = browser.window_handles # 獲取句柄
browser.switch_to.window(handles[0]) # 切換句柄,即切換tab頁
browser.switch_to.alert.accept() # 彈框的確認(rèn)按鈕點擊
browser.switch_to.alert.dismiss() # 彈框的取消按鈕點擊
ActionChains 模擬鼠標(biāo)操作
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver import ActionChains
import time
browser = webdriver.Chrome()
browser.get("http://localhost/selenium/myForm.html")
# 定位元素
a_link = browser.find_element(by=By.LINK_TEXT, value="轉(zhuǎn)跳百度")
# 初始化一個ActionChains
action = ActionChains(browser)
# 對定位的元素執(zhí)行懸停操作
action.move_to_element(a_link).perform()
time.sleep(2)
# 對定位的元素執(zhí)行右鍵操作
action.context_click(a_link).perform()
time.sleep(2)
# 對定位的元素執(zhí)行雙擊操作
action.double_click(a_link).perform()
time.sleep(2)
# 鼠標(biāo)拖動
start_point = browser.find_element(by=By.ID, value="id01")
end_point = browser.find_element(by=By.NAME, value="pwd")
action.drag_and_drop(start_point, end_point).perform()