Python?selenium?webdriver?基本使用代碼分享
前言
本文就介紹了Selenium的常用內(nèi)容:詳解Selenium 元素定位和WebDriver常用方法
以下是本篇文章正文內(nèi)容,下面案例可供參考
一、Pip安裝&創(chuàng)建Bowser對象
1.Pip install selenium
pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple
2.創(chuàng)建Bowser對象
# 導(dǎo)入webdriver模塊 from selenium import webdriver # 指定使用Chrome瀏覽器 driver = webdriver.Chrome() # chrome_options,executable_path常用這兩個參數(shù)
二、webdriver.ChromeOptions配置
配置瀏覽器的常用模式
chromeoptions 的常用功能
(1)添加啟動參數(shù) (add_argument)
(2)添加擴展應(yīng)用參數(shù) (add_extension, add_encoded_extension),常用在代理身份驗證
(3)添加實驗性質(zhì)參數(shù) (add_experimental_option)
代碼如下(示例):
options= webdriver.ChromeOptions() # 創(chuàng)建配置對象
options.add_argument('lang=zh_CN.UTF-8') # 設(shè)置中文
options.add_argument('--headless') # 無頭參數(shù),瀏覽器隱藏在后臺運行
options.add_argument('--disable-gpu') # 禁用GPU加速
options.add_argument('--start-maximized')#瀏覽器最大化
options.add_argument('--window-size=1280x1024') # 設(shè)置瀏覽器分辨率(窗口大小)
options.add_argument('--user-agent=""') # 設(shè)置請求頭的User-Agent
options.add_argument('--incognito') # 隱身模式(無痕模式)
options.add_argument(f'--proxy-server={proxy}') # 添加IP代理 proxy=f"http://{ip}:{port}"
# 關(guān)閉'Chrome目前受到自動測試軟體控制'的提示
options.add_experimental_option('useAutomationExtension', False)
options.add_experimental_option('excludeSwitches', ['enable-automation'])
prefs = {
"download.default_directory":"D:\download", # 設(shè)置瀏覽器下載地址(絕對路徑)
"profile.managed_default_content_settings.images": 2, # 不加載圖片
}
chrome_options.add_experimental_option('prefs', prefs) # 添加prefs
# chrome_options="瀏覽器配置參數(shù)", executable_path="瀏覽器驅(qū)動絕對路徑"
driver = webdriver.Chrome(chrome_options=options") # 創(chuàng)建瀏覽器對象
driver.maximize_window() # 瀏覽器窗口最大化
driver.set_page_load_timeout(30) # 設(shè)置連接超時30秒三、常用代碼
# 導(dǎo)入webdriver模塊
from selenium import webdriver
driver = webdriver.Chrome() # chrome_options,executable_path常用這兩個參數(shù)
# get 會一直等到頁面被完全加載,然后才會執(zhí)行下一步代碼,如果超出了set_page_load_timeout()的設(shè)置,則會拋出異常。
driver.get("https://baidu.com/")
new_window = driver.window_handles[-1] # 新窗口'-1'代表打開的最后一個窗口,導(dǎo)航欄有多少個窗口根據(jù)下標來鎖定
driver.switch_to.window(new_window) # 切換到新窗口:
driver.switch_to.frame('passport_iframe') # 根據(jù)name或id 定位至 iframe
driver.switch_to.default_content() # 切換出(iframe)至默認,有好多種切換方式找BaiDu
driver.find_element_by_xpath('//input[@xx="xxxx"]').send_keys(content) # 根據(jù)xpath語法定位元素輸入內(nèi)容
driver.find_element_by_xpath('//div[@xx="xxxx"]').click() # 根據(jù)xpath語法定位元素后并點擊
driver.find_element_by_xpath('//div[@xx="xxxx"]').text # 根據(jù)xpath語法定位后獲取元素的文本信息
driver.get_cookie('name') #根據(jù)name取出對應(yīng)字典類型的對象
driver.get_cookies() # 返回一個列表,包含多個字典類型的對象
# 添加Cookie部分參數(shù)介紹:name=cookie的名稱,value=cookie對應(yīng)的值,domain=服務(wù)器域名,expiry=Cookie有效終止日期
driver.add_cookie({'name' : 'xxx', 'value' : 'xxx'}) # 添加cookie
driver.delete_cookie('name') # 刪除指定部分的Cookie
driver.delete_all_cookies() # 刪除所有Cookie
js="var q=document.documentElement.scrollTop=10000" # 滾動到最下面
js="var q=document.documentElement.scrollTop=0" # 滾動到最上面
driver.execute_script(js) # 執(zhí)行JS代碼,更多自行BaiDu
driver.quit() # 退出瀏覽器四、selenium的異常處理
# 導(dǎo)入exceptions模塊
from selenium.common import exceptions
try:
# 執(zhí)行代碼
except exceptions.TimeoutException:
print("xxxx - 請求加載超時異常!\n", end='')
except exceptions.NoSuchElementException:
print("xxxx - 網(wǎng)頁元素定位異常!\n", end='')
except exceptions.NoSuchWindowException:
print("xxxx - 目標窗口切換異常!\n", end='')
except exceptions.WebDriverException:
print("xxxx - 瀏覽器對象各種異常!\n", end='')
except Exception:
print("xxxx - 以上未捕捉到的異常!\n", end='')selenium 更多異常參考:http://www.dhdzp.com/article/139384.htm
總結(jié)
例如:以上就是今天要記錄的內(nèi)容,本文僅僅簡單介紹了selenium的使用,selenium 提供了大量能使我們捷地實現(xiàn)自動化測試的函數(shù)和方法,后續(xù)會在本文的基礎(chǔ)上記錄新的常用操作。
Google官方下載地址:https://www.google.cn/chrome/
Google驅(qū)動下載地址:https://npm.taobao.org/mirrors/chromedriver/
驅(qū)動配置請參考:http://www.dhdzp.com/article/266920.htm
到此這篇關(guān)于Python selenium webdriver 基本使用的文章就介紹到這了,更多相關(guān)Python selenium webdriver使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用Python批量處理Excel文件并轉(zhuǎn)為csv文件示例
這篇文章主要介紹了使用Python批量處理Excel文件并轉(zhuǎn)為csv文件示例,文中通過代碼示例給大家介紹非常詳細,對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2023-12-12
Python如何在windows環(huán)境安裝pip及rarfile
這篇文章主要介紹了Python如何在windows環(huán)境安裝pip及rarfile,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-06-06
Python?Cloudinary實現(xiàn)圖像和視頻上傳詳解
這篇文章主要介紹了Python?Cloudinary實現(xiàn)圖像和視頻上傳功能,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2022-11-11
python中關(guān)于時間和日期函數(shù)的常用計算總結(jié)(time和datatime)
python中關(guān)于時間和日期函數(shù)有time和datatime使用介紹,需要的朋友可以參考下2013-03-03
Python中的“_args”和“__kwargs”用法詳解
*args 和 **kwargs 主要?于函數(shù)定義,你可以將不定數(shù)量的參數(shù)傳遞給?個函數(shù),這篇文章主要介紹了Python中的“_args”和“__kwargs”用法,需要的朋友可以參考下2023-01-01

