002 selenium 元素定位
阿新 • • 發佈:2018-11-26
''' 時間:2018/11/26 功能:unittest 目錄: 一: 瀏覽器操作 1 開啟網頁 2 設定休眠 3 頁面重新整理 4 頁面切換 5 設定視窗大小 6 截圖 7 退出 二: 八種定位 1 find_element_by_id 2 find_element_by_name 3 find_element_by_class_name 4 find_element_by_tag_name
5 find_element_by_link_text 6 find_element_by_partial_link_text 7 xpath 8 css 9 複數 三: 操作物件 1 常規操作 2 滑鼠事件 3 鍵盤事件 四: Error 1 沒許可權 2'''
一: 瀏覽器操作
1 開啟網頁
# coding:utf-8 from selenium import webdriver # 匯入模組 - webdriver driver = webdriver.Firefox() # 啟動瀏覽器 - Firefox #driver = webdriver.Chrome() # 啟動瀏覽器 - Chrome #driver = webdriver.Ie() # 啟動瀏覽器 - Ie driver.get("https://www.baidu.com") # 訪問url - 百度
2 設定休眠
# coding:utf-8 from selenium import webdriver # 匯入模組 - webdriver import time # 匯入模組 - time driver = webdriver.Firefox() # 啟動瀏覽器 - Firefox driver.get("https://www.baidu.com") # 訪問url - 百度 time.sleep(3) # 設定休眠 - 3秒鐘 driver.quit() #退出瀏覽器
3 頁面重新整理
# coding:utf-8 from selenium import webdriver # 匯入模組 - webdriver import time # 匯入模組 - time driver = webdriver.Firefox() # 啟動瀏覽器 - Firefox driver.get("https://www.baidu.com") # 訪問url - 百度 time.sleep(3) # 設定休眠 - 3秒鐘 driver.refresh() # 重新整理頁面 driver.quit() # 退出瀏覽器
4 頁面切換
# coding:utf-8 from selenium import webdriver # 匯入模組 - webdriver import time # 匯入模組 - time driver = webdriver.Firefox() # 啟動瀏覽器 - Firefox driver.get("https://www.baidu.com") # 訪問url - 百度 time.sleep(2) # 設定休眠 - 2秒鐘 driver.get("https://www.cnblogs.com/huafan/") # 訪問url - 部落格園 time.sleep(2) # 設定休眠 - 2秒鐘 driver.back() # 返回上一頁 time.sleep(2) # 設定休眠 - 2秒鐘 driver.forward() # 返回下一頁 time.sleep(2) # 設定休眠 - 2秒鐘 driver.quit() # 退出瀏覽器
5 設定視窗大小
# coding:utf-8 from selenium import webdriver # 匯入模組 - webdriver import time # 匯入模組 - time driver = webdriver.Firefox() # 啟動瀏覽器 - Firefox driver.get("https://www.baidu.com") # 訪問url - 百度 time.sleep(2) # 設定休眠 - 2秒鐘 driver.set_window_size(540, 960) # 設定視窗 - 540*960 time.sleep(2) # 設定休眠 - 2秒鐘 driver.maximize_window() # 設定視窗 - 最大化 time.sleep(2) # 設定休眠 - 2秒鐘 driver.quit() # 退出瀏覽器
6 截圖
# coding:utf-8 from selenium import webdriver # 匯入模組 - webdriver import time # 匯入模組 - time driver = webdriver.Firefox() # 啟動瀏覽器 - Firefox driver.get("https://www.baidu.com") # 訪問url - 百度 time.sleep(2) # 設定休眠 - 2秒鐘 driver.get_screenshot_as_file("C:\\test_001.jpg") # 截圖瀏覽器 time.sleep(2) # 設定休眠 - 2秒鐘 driver.quit() # 退出瀏覽器
7 退出
# coding:utf-8 from selenium import webdriver # 匯入模組 - webdriver import time # 匯入模組 - time driver = webdriver.Firefox() # 啟動瀏覽器 - Firefox driver.get("https://www.baidu.com") # 訪問url - 百度 time.sleep(2) # 設定休眠 - 2秒鐘 #driver.close() # 關閉視窗 - 當前視窗 driver.quit() # 退出程序 - 瀏覽器; 刪除檔案 - C盤臨時
二: 八種定位
1 find_element_by_id
# coding:utf-8 from selenium import webdriver import time driver=webdriver.Firefox() # 啟動瀏覽器 - Firefox driver.get("https://www.baidu.com") # 訪問url - 百度 time.sleep(1) # 步驟: 定位 + 操作 + 資料 # 定位(控制元件) + 操作(鍵盤/滑鼠) + 資料 driver.find_element_by_id("kw").send_keys("汁蟲 部落格園") # 定位 - 百度搜索框; 操作 - 鍵盤輸入; 資料 - 汁蟲 部落格園 driver.find_element_by_id("su").click() # 定位 - 百度按鈕; 操作 - 滑鼠點選; 資料 - 無 driver.find_element_by_id("kw").clear() # 定位 - 百度搜索框; 操作 - 清除; driver.find_element_by_id("kw").send_keys("部落格園 汁蟲") # 定位 - 百度搜索框; 操作 - 鍵盤輸入; 資料 - 部落格園 汁蟲 driver.find_element_by_id("su").click() # 定位 - 百度搜索框; 操作 - 清除; driver.quit() # 退出程式
2 find_element_by_name
# coding:utf-8 from selenium import webdriver import time driver=webdriver.Firefox() # 啟動瀏覽器 - Firefox driver.get("https://www.baidu.com") # 訪問url - 百度 time.sleep(1) # 步驟: 定位 + 操作 + 資料 driver.find_element_by_name("wd").send_keys("汁蟲 部落格園") # 定位 - 百度搜索框; 操作 - 鍵盤輸入; 資料 - 汁蟲 部落格園 driver.find_element_by_id("su").click() # 定位 - 百度按鈕; 操作 - 滑鼠點選; 資料 - 無 driver.quit() # 退出程式
3 find_element_by_class_name
# coding:utf-8 from selenium import webdriver import time driver=webdriver.Firefox() # 啟動瀏覽器 - Firefox driver.get("https://www.baidu.com") # 訪問url - 百度 time.sleep(1) # 步驟: 定位 + 操作 + 資料 driver.find_element_by_class_name("s_ipt").send_keys("汁蟲 部落格園") # 定位 - 百度搜索框; 操作 - 鍵盤輸入; 資料 - 汁蟲 部落格園 driver.find_element_by_class_name("s_btn").click() # 定位 - 百度按鈕; 操作 - 滑鼠點選; 資料 - 無 driver.quit() # 退出程式
4 find_element_by_tag_name
# coding:utf-8 from selenium import webdriver import time driver=webdriver.Firefox() # 啟動瀏覽器 - Firefox driver.get("https://www.baidu.com") # 訪問url - 百度 time.sleep(2) # 步驟: 定位 + 操作 + 資料 driver.find_element_by_tag_name("area").click() # 定位 - 百度圖片; driver.quit() # 退出程式
5 find_element_by_link_text
# coding:utf-8 from selenium import webdriver import time driver=webdriver.Firefox() # 啟動瀏覽器 - Firefox driver.get("https://www.baidu.com") # 訪問url - 百度 time.sleep(1) # 步驟: 定位 + 操作 + 資料 driver.find_element_by_link_text("學術").click() # 定位 - 連結; 操作 - 點選; driver.quit() # 退出程式
6 find_element_by_partial_link_text
# coding:utf-8 from selenium import webdriver import time driver=webdriver.Firefox() # 啟動瀏覽器 - Firefox driver.get("https://www.baidu.com") # 訪問url - 百度 time.sleep(1) # 步驟: 定位 + 操作 + 資料 driver.find_element_by_partial_link_text("術").click() # 定位 - 連結; 操作 - 點選; driver.quit() # 退出程式
7 xpath
# coding:utf-8 from selenium import webdriver import time driver=webdriver.Firefox() # 啟動瀏覽器 - Firefox driver.get("https://www.baidu.com") # 訪問url - 百度 time.sleep(1) # 步驟: 定位 + 操作 + 資料 driver.find_element_by_xpath("/html/body/div/div/div/div/div/form/span/input").send_keys("selenium") driver.find_element_by_xpath("/html/body/div/div/div/div/div/form/span[2]/input").click() driver.quit() # 退出程式
8 css
# coding:utf-8 from selenium import webdriver import time driver = webdriver.Firefox() # 啟動瀏覽器 - Firefox driver.get("https://www.baidu.com") # 訪問url - 百度 time.sleep(1) # 步驟: 定位 + 操作 + 資料 # 定位(控制元件) + 操作(鍵盤/滑鼠) + 資料 driver.find_element_by_css_selector("#kw").send_keys("汁蟲 部落格園") # 定位 - 百度搜索框; 操作 - 鍵盤輸入; 資料 - 汁蟲 部落格園 driver.find_element_by_css_selector("#su").click() # 定位 - 百度按鈕; 操作 - 滑鼠點選; 資料 - 無 time.sleep(3) driver.quit() # 退出程式
9 複數
# coding:utf-8 from selenium import webdriver import time driver=webdriver.Firefox() # 啟動瀏覽器 - Firefox driver.get("https://www.baidu.com") # 訪問url - 百度 time.sleep(1) # 步驟: 定位 + 操作 + 資料 elements = driver.find_elements_by_class_name("mnav")[6].click() driver.quit() # 退出程式
三: 操作物件
1 常規操作
2 滑鼠事件
3 鍵盤事件
四: Error
1 沒許可權
2