Python?selenium?webdriver?基本使用代碼分享
前言
本文就介紹了Selenium的常用內(nèi)容:詳解Selenium 元素定位和WebDriver常用方法
以下是本篇文章正文內(nèi)容,下面案例可供參考
一、Pip安裝&創(chuàng)建Bowser對(duì)象
1.Pip install selenium
pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple
2.創(chuàng)建Bowser對(duì)象
# 導(dǎo)入webdriver模塊 from selenium import webdriver # 指定使用Chrome瀏覽器 driver = webdriver.Chrome() # chrome_options,executable_path常用這兩個(gè)參數(shù)
二、webdriver.ChromeOptions配置
配置瀏覽器的常用模式
chromeoptions 的常用功能
(1)添加啟動(dòng)參數(shù) (add_argument)
(2)添加擴(kuò)展應(yīng)用參數(shù) (add_extension, add_encoded_extension),常用在代理身份驗(yàn)證
(3)添加實(shí)驗(yàn)性質(zhì)參數(shù) (add_experimental_option)
代碼如下(示例):
options= webdriver.ChromeOptions() # 創(chuàng)建配置對(duì)象 options.add_argument('lang=zh_CN.UTF-8') # 設(shè)置中文 options.add_argument('--headless') # 無(wú)頭參數(shù),瀏覽器隱藏在后臺(tái)運(yùn)行 options.add_argument('--disable-gpu') # 禁用GPU加速 options.add_argument('--start-maximized')#瀏覽器最大化 options.add_argument('--window-size=1280x1024') # 設(shè)置瀏覽器分辨率(窗口大?。? options.add_argument('--user-agent=""') # 設(shè)置請(qǐng)求頭的User-Agent options.add_argument('--incognito') # 隱身模式(無(wú)痕模式) options.add_argument(f'--proxy-server={proxy}') # 添加IP代理 proxy=f"http://{ip}:{port}" # 關(guān)閉'Chrome目前受到自動(dòng)測(cè)試軟體控制'的提示 options.add_experimental_option('useAutomationExtension', False) options.add_experimental_option('excludeSwitches', ['enable-automation']) prefs = { "download.default_directory":"D:\download", # 設(shè)置瀏覽器下載地址(絕對(duì)路徑) "profile.managed_default_content_settings.images": 2, # 不加載圖片 } chrome_options.add_experimental_option('prefs', prefs) # 添加prefs # chrome_options="瀏覽器配置參數(shù)", executable_path="瀏覽器驅(qū)動(dòng)絕對(duì)路徑" driver = webdriver.Chrome(chrome_options=options") # 創(chuàng)建瀏覽器對(duì)象 driver.maximize_window() # 瀏覽器窗口最大化 driver.set_page_load_timeout(30) # 設(shè)置連接超時(shí)30秒
三、常用代碼
# 導(dǎo)入webdriver模塊 from selenium import webdriver driver = webdriver.Chrome() # chrome_options,executable_path常用這兩個(gè)參數(shù) # get 會(huì)一直等到頁(yè)面被完全加載,然后才會(huì)執(zhí)行下一步代碼,如果超出了set_page_load_timeout()的設(shè)置,則會(huì)拋出異常。 driver.get("https://baidu.com/") new_window = driver.window_handles[-1] # 新窗口'-1'代表打開(kāi)的最后一個(gè)窗口,導(dǎo)航欄有多少個(gè)窗口根據(jù)下標(biāo)來(lái)鎖定 driver.switch_to.window(new_window) # 切換到新窗口: driver.switch_to.frame('passport_iframe') # 根據(jù)name或id 定位至 iframe driver.switch_to.default_content() # 切換出(iframe)至默認(rèn),有好多種切換方式找BaiDu driver.find_element_by_xpath('//input[@xx="xxxx"]').send_keys(content) # 根據(jù)xpath語(yǔ)法定位元素輸入內(nèi)容 driver.find_element_by_xpath('//div[@xx="xxxx"]').click() # 根據(jù)xpath語(yǔ)法定位元素后并點(diǎn)擊 driver.find_element_by_xpath('//div[@xx="xxxx"]').text # 根據(jù)xpath語(yǔ)法定位后獲取元素的文本信息 driver.get_cookie('name') #根據(jù)name取出對(duì)應(yīng)字典類型的對(duì)象 driver.get_cookies() # 返回一個(gè)列表,包含多個(gè)字典類型的對(duì)象 # 添加Cookie部分參數(shù)介紹:name=cookie的名稱,value=cookie對(duì)應(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" # 滾動(dòng)到最下面 js="var q=document.documentElement.scrollTop=0" # 滾動(dòng)到最上面 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 - 請(qǐng)求加載超時(shí)異常!\n", end='') except exceptions.NoSuchElementException: print("xxxx - 網(wǎng)頁(yè)元素定位異常!\n", end='') except exceptions.NoSuchWindowException: print("xxxx - 目標(biāo)窗口切換異常!\n", end='') except exceptions.WebDriverException: print("xxxx - 瀏覽器對(duì)象各種異常!\n", end='') except Exception: print("xxxx - 以上未捕捉到的異常!\n", end='')
selenium 更多異常參考:http://www.dbjr.com.cn/article/139384.htm
總結(jié)
例如:以上就是今天要記錄的內(nèi)容,本文僅僅簡(jiǎn)單介紹了selenium的使用,selenium 提供了大量能使我們捷地實(shí)現(xiàn)自動(dòng)化測(cè)試的函數(shù)和方法,后續(xù)會(huì)在本文的基礎(chǔ)上記錄新的常用操作。
Google官方下載地址:https://www.google.cn/chrome/
Google驅(qū)動(dòng)下載地址:https://npm.taobao.org/mirrors/chromedriver/
驅(qū)動(dòng)配置請(qǐng)參考:http://www.dbjr.com.cn/article/266920.htm
到此這篇關(guān)于Python selenium webdriver 基本使用的文章就介紹到這了,更多相關(guān)Python selenium webdriver使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Pytorch加載部分預(yù)訓(xùn)練模型的參數(shù)實(shí)例
今天小編就為大家分享一篇Pytorch加載部分預(yù)訓(xùn)練模型的參數(shù)實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08pytorch中的優(yōu)化器optimizer.param_groups用法
這篇文章主要介紹了pytorch中的優(yōu)化器optimizer.param_groups用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05Python入門(六)Python數(shù)據(jù)類型
這篇文章主要介紹了Python入門(六)Python數(shù)據(jù)類型,Python是一門非常強(qiáng)大好用的語(yǔ)言,也有著易上手的特性,本文為入門教程,需要的朋友可以參考下2023-04-0416中Python機(jī)器學(xué)習(xí)類別特征處理方法總結(jié)
類別型特征(categorical?feature)主要是指職業(yè),血型等在有限類別內(nèi)取值的特征。在這篇文章中,小編將給大家分享一下16種類別特征處理方法,需要的可以參考一下2022-09-09django框架model orM使用字典作為參數(shù),保存數(shù)據(jù)的方法分析
這篇文章主要介紹了django框架model orM使用字典作為參數(shù),保存數(shù)據(jù)的方法,結(jié)合實(shí)例形式分析了字典參數(shù)結(jié)合django model實(shí)現(xiàn)保存數(shù)據(jù)相關(guān)操作技巧,需要的朋友可以參考下2019-06-06python下setuptools的安裝詳解及No module named setuptools的解決方法
這篇文章主要給大家介紹了關(guān)于python下setuptools的安裝以及No module named setuptools問(wèn)題的解決方法,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-07-07