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