国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

自動化測試: Selenium 自動登錄授權(quán),再 Requests 請求內(nèi)容

這篇具有很好參考價值的文章主要介紹了自動化測試: Selenium 自動登錄授權(quán),再 Requests 請求內(nèi)容。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Selenium 自動登錄網(wǎng)站、截圖及 Requests 抓取登錄后的網(wǎng)頁內(nèi)容。一起了解下吧。

  • Selenium: 支持 Web 瀏覽器自動化的一系列工具和庫的綜合項目。
  • Requests: 唯一的一個非轉(zhuǎn)基因的 Python HTTP 庫,人類可以安全享用。

selenium requests,技術(shù)分享,軟件測試,自動化測試,selenium,python,自動化測試,測試工程師,軟件測試

?

為什么選擇 Selenium 實現(xiàn)自動登錄?

Selenium 實現(xiàn),相當(dāng)于模擬用戶手動打開瀏覽器、進行登錄的過程。

相比直接 HTTP 請求登錄,有幾個好處:

  1. 避免登錄窗口的復(fù)雜情況(iframe, ajax 等),省得分析細節(jié)。
    • 用 Selenium 實現(xiàn),依照用戶操作流程即可。
  2. 避免模擬 Headers 、記錄 Cookies 等 HTTP 完成登錄的細節(jié)。
    • 用 Selenium 實現(xiàn),依賴瀏覽器自身功能即可。
  3. 利于實現(xiàn)加載等待、發(fā)現(xiàn)特殊情況(登錄驗證等),加進一步邏輯。

另外,自動登錄等過程的可視化,給外行看挺讓人感覺高端的。

為什么選擇 Requests 抓取網(wǎng)頁內(nèi)容?

抓取登錄后的某些內(nèi)容,而非爬取網(wǎng)站, Requests 夠用、好用。

1) 準(zhǔn)備 Selenium

基礎(chǔ)環(huán)境: Python 3.7.4 (anaconda3-2019.10)

pip 安裝 Selenium :

pip install selenium
復(fù)制代碼

獲取 Selenium 版本信息:

$ python
Python 3.7.4 (default, Aug 13 2019, 15:17:50)
[Clang 4.0.1 (tags/RELEASE_401/final)] :: Anaconda, Inc. on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import selenium
>>> print('Selenium version is {}'.format(selenium.__version__))
Selenium version is 3.141.0
復(fù)制代碼

2) 準(zhǔn)備瀏覽器及其驅(qū)動

下載 Google Chrome 瀏覽器并安裝: www.google.com/chrome/

下載 Chromium/Chrome WebDriver: chromedriver.storage.googleapis.com/index.html

然后,將 WebDriver 路徑加入到 PATH ,例如:

# macOS, Linux
export PATH=$PATH:/opt/WebDriver/bin >> ~/.profile

# Windows
setx /m path "%path%;C:\WebDriver\bin\"
復(fù)制代碼

3) Go coding!

讀取登錄配置

登錄信息是私密的,我們從 json 配置讀?。?/p>

# load config
import json
from types import SimpleNamespace as Namespace

secret_file = 'secrets/douban.json'
# {
#   "url": {
#     "login": "https://www.douban.com/",
#     "target": "https://www.douban.com/mine/"
#   },
#   "account": {
#     "username": "username",
#     "password": "password"
#   }
# }
with open(secret_file, 'r', encoding='utf-8') as f:
  config = json.load(f, object_hook=lambda d: Namespace(**d))

login_url = config.url.login
target_url = config.url.target
username = config.account.username
password = config.account.password
復(fù)制代碼

Selenium 自動登錄

以 Chrome WebDriver 實現(xiàn),登錄測試站點為「豆瓣」。

打開登錄頁面,自動輸入用戶名、密碼,進行登錄:

# automated testing
from selenium import webdriver

# Chrome Start
opt = webdriver.ChromeOptions()
driver = webdriver.Chrome(options=opt)
# Chrome opens with “Data;” with selenium
#   https://stackoverflow.com/questions/37159684/chrome-opens-with-data-with-selenium
# Chrome End

# driver.implicitly_wait(5)

from selenium.common.exceptions import TimeoutException
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
wait = WebDriverWait(driver, 5)

print('open login page ...')
driver.get(login_url)
driver.switch_to.frame(driver.find_elements_by_tag_name("iframe")[0])

driver.find_element_by_css_selector('li.account-tab-account').click()
driver.find_element_by_name('username').send_keys(username)
driver.find_element_by_name('password').send_keys(password)
driver.find_element_by_css_selector('.account-form .btn').click()
try:
  wait.until(EC.presence_of_element_located((By.ID, "content")))
except TimeoutException:
  driver.quit()
  sys.exit('open login page timeout')
復(fù)制代碼

如果用 IE 瀏覽器,如下:

# Ie Start
# Selenium Click is not working with IE11 in Windows 10
#   https://github.com/SeleniumHQ/selenium/issues/4292
opt = webdriver.IeOptions()
opt.ensure_clean_session = True
opt.ignore_protected_mode_settings = True
opt.ignore_zoom_level = True
opt.initial_browser_url = login_url
opt.native_events = False
opt.persistent_hover = True
opt.require_window_focus = True
driver = webdriver.Ie(options = opt)
# Ie End
復(fù)制代碼

如果設(shè)定更多功能,可以:

cap = opt.to_capabilities()
cap['acceptInsecureCerts'] = True
cap['javascriptEnabled'] = True
復(fù)制代碼

打開目標(biāo)頁面,進行截圖

print('open target page ...')
driver.get(target_url)
try:
  wait.until(EC.presence_of_element_located((By.ID, "board")))
except TimeoutException:
  driver.quit()
  sys.exit('open target page timeout')

# save screenshot
driver.save_screenshot('target.png')
print('saved to target.png')
復(fù)制代碼

Requests 復(fù)刻 Cookies ,請求 HTML

# save html
import requests

requests_session = requests.Session()
selenium_user_agent = driver.execute_script("return navigator.userAgent;")
requests_session.headers.update({"user-agent": selenium_user_agent})
for cookie in driver.get_cookies():
  requests_session.cookies.set(cookie['name'], cookie['value'], domain=cookie['domain'])

# driver.delete_all_cookies()
driver.quit()

resp = requests_session.get(target_url)
resp.encoding = resp.apparent_encoding
# resp.encoding = 'utf-8'
print('status_code = {0}'.format(resp.status_code))
with open('target.html', 'w+') as fout:
  fout.write(resp.text)

print('saved to target.html')
復(fù)制代碼

4) 運行測試

可以臨時將 WebDriver 路徑加入到 PATH :

# macOS, Linux
export PATH=$(pwd)/drivers:$PATH

# Windows
set PATH=%cd%\drivers;%PATH%
復(fù)制代碼

運行 Python 腳本,輸出信息如下:

$ python douban.py
Selenium version is 3.141.0
--------------------------------------------------------------------------------
open login page ...
open target page ...
saved to target.png
status_code = 200
saved to target.html
復(fù)制代碼

截圖 target.png, HTML 內(nèi)容 target.html ,結(jié)果如下:

selenium requests,技術(shù)分享,軟件測試,自動化測試,selenium,python,自動化測試,測試工程師,軟件測試

?

結(jié)語

登錄過程如果遇到驗證呢?

  1. 滑動驗證,可以 Selenium 模擬
    • 滑動距離,圖像梯度算法可判斷
  2. 圖文驗證,可以 Python AI 庫識別

??今天的分享就到此結(jié)束了 ,如果文章對你有幫助,記得點贊,收藏,加關(guān)注。會不定期分享一些干貨哦......

最后感謝每一個認真閱讀我文章的人,看著粉絲一路的上漲和關(guān)注,禮尚往來總是要有的,雖然不是什么很值錢的東西,如果你用得到的話可以直接拿走:

下方這份完整的軟件測試視頻學(xué)習(xí)教程已經(jīng)上傳CSDN官方認證的二維碼,朋友們?nèi)绻枰梢宰孕忻赓M領(lǐng)取 【保證100%免費】

selenium requests,技術(shù)分享,軟件測試,自動化測試,selenium,python,自動化測試,測試工程師,軟件測試

selenium requests,技術(shù)分享,軟件測試,自動化測試,selenium,python,自動化測試,測試工程師,軟件測試

這些對想從事【軟件測試】的朋友來說應(yīng)該是最全面最完整的備戰(zhàn)倉庫,這個倉庫也陪伴我走過了最艱難的路程,希望也能幫助到你!凡事要趁早,特別是技術(shù)行業(yè),一定要提升技術(shù)功底。希望對大家有所幫助……基礎(chǔ)知識、Linux必備、Shell、互聯(lián)網(wǎng)程序原理、Mysql數(shù)據(jù)庫、抓包工具專題、接口測試工具、測試進階-Python編程、Web自動化測試、APP自動化測試、接口自動化測試、測試高級持續(xù)集成、測試架構(gòu)開發(fā)測試框架、性能測試、安全測試等配套學(xué)習(xí)資源免費分享~

selenium requests,技術(shù)分享,軟件測試,自動化測試,selenium,python,自動化測試,測試工程師,軟件測試文章來源地址http://www.zghlxwxcb.cn/news/detail-809961.html

到了這里,關(guān)于自動化測試: Selenium 自動登錄授權(quán),再 Requests 請求內(nèi)容的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Selenium自動化測試框架中使用Cookies繞過登錄

    Selenium自動化測試框架中使用Cookies繞過登錄

    在使用selenium測試后臺時常常每個流程都需要走登錄流程,這樣自然比較浪費時間。如果遇到登錄需要輸入驗證碼等情況,就可能出師未捷身先死。 在Web應(yīng)用中,登錄狀態(tài)通常是通過Cookie中對應(yīng)的session id驗證的。也是就是說,我們只要攜帶上登錄后的Cookies,瀏覽器就會自動

    2024年02月09日
    瀏覽(24)
  • python+selenium進行cnblog的自動化登錄測試

    python+selenium進行cnblog的自動化登錄測試

    Web登錄測試是很常見的測試,手動測試大家再熟悉不過了,那如何進行自動化登錄測試呢!本文就基于python+selenium結(jié)合unittest單元測試框架來進行一次簡單但比較完整的cnblog自動化登錄測試,可提供點參考!下面就包括測試代碼和每種測試情況的截圖。 代碼如下: 測試結(jié)果如

    2024年02月16日
    瀏覽(19)
  • Python + selenium實戰(zhàn):自動化登錄功能測試用例,入門級!

    Python + selenium實戰(zhàn):自動化登錄功能測試用例,入門級!

    測試行業(yè)真是越來越卷了,點點點幾乎沒有競爭力,入行幾乎都需要掌握一些自動化技術(shù),本文就小編最近學(xué)習(xí)的 python + selenium 進行一個簡單的登錄功能實現(xiàn) 適用對selenium python unittest有一些了解的同學(xué),大佬輕噴~ python selenium time ddt openpyxl unittest HTMLTestRunner data/login.xlsx 將

    2024年01月18日
    瀏覽(20)
  • 自動化測試Lab①—selenium模擬輸入賬號密碼登錄QQ空間

    自動化測試Lab①—selenium模擬輸入賬號密碼登錄QQ空間

    目錄 前言:selenium介紹 實驗過程:業(yè)務(wù)分析 實驗過程:編寫自動化測試代碼 Selenium是一個廣泛使用的開源自動化測試工具,主要用于Web應(yīng)用程序的功能測試和自動化。它提供了一系列的API和工具,允許開發(fā)人員使用多種編程語言(如Java、Python、C#等)來編寫自動化腳本。

    2024年02月20日
    瀏覽(30)
  • 網(wǎng)絡(luò)請求爬蟲【requests】和自動化爬蟲【selenium】

    在Python開發(fā)的爬蟲項目中, requests 和 selenium 是兩個常用的庫,它們各有特點和應(yīng)用場景。 相同點 數(shù)據(jù)抓取: 無論是 selenium 還是 requests ,兩者的基本目的都是為了從網(wǎng)絡(luò)上抓取數(shù)據(jù)。 自動化: 它們都能夠自動化地訪問網(wǎng)頁,獲取需要的信息。 不同點 工作原理: requests 直

    2024年02月20日
    瀏覽(27)
  • 【W(wǎng)eb項目實戰(zhàn)】從零開始學(xué)習(xí)Web自動化測試:用Python和Selenium實現(xiàn)網(wǎng)站登錄功能

    【W(wǎng)eb項目實戰(zhàn)】從零開始學(xué)習(xí)Web自動化測試:用Python和Selenium實現(xiàn)網(wǎng)站登錄功能

    B站首推!2023最詳細自動化測試合集,小白皆可掌握,讓測試變得簡單、快捷、可靠 https://www.bilibili.com/video/BV1ua4y1V7Db 目錄 1.環(huán)境搭建

    2024年02月06日
    瀏覽(47)
  • selenium自動化原理應(yīng)用 - 利用 requests 模擬 selenium 驅(qū)動瀏覽器

    selenium自動化原理應(yīng)用 - 利用 requests 模擬 selenium 驅(qū)動瀏覽器

    selenium是一個web自動化測試的開源框架,它支持多語言:python/java/c#… 前面也有一篇文章說明了,selenium+瀏覽器的環(huán)境搭建。 selenium支持多語言,是因為selenium與瀏覽器驅(qū)動之間是通過http協(xié)議進行通信的。只關(guān)心通信的數(shù)據(jù)是否能夠正確解讀 ,并不關(guān)心這個數(shù)據(jù)是從哪個客戶

    2024年02月03日
    瀏覽(22)
  • 接口自動化測試之Requests模塊詳解

    接口自動化測試之Requests模塊詳解

    Python中,系統(tǒng)自帶的urllib和urllib2都提供了功能強大的HTTP支持,但是API接口確實太難用了。Requests 作為更高一層的封裝,在大部分情況下對得起它的slogan——HTTP for Humans。 讓我們一起來看看 Requests 這個 HTTP庫在我們接口自動化測試中的使用吧 發(fā)送請求 在使用 Requests發(fā)送網(wǎng)絡(luò)

    2024年02月08日
    瀏覽(22)
  • Python+Requests實現(xiàn)接口自動化測試

    Python+Requests實現(xiàn)接口自動化測試

    一般對于自動化的理解,有兩種方式的自動化。 第一,不需要寫代碼,完全由工具實現(xiàn),這種方式的工具一般是公司自己研發(fā)的,方便黑盒測試人員使用。這種工具的特點是學(xué)習(xí)成本低,方便使用,但是通用性不強,也就是換了一家公司,就很有可能無法使用之前的工具。

    2024年01月16日
    瀏覽(22)
  • 接口測試 03 -- 接口自動化思維 & Requests庫應(yīng)用

    接口測試 03 -- 接口自動化思維 & Requests庫應(yīng)用

    接口測試自動化,簡單來講就是功能測試用例腳本化然后執(zhí)行腳本,產(chǎn)生一份可視化測試報告。不管什么樣的測試方式,都是為了驗證功能與發(fā)現(xiàn) BUG。那為什么要做接口測試自動化呢? 一句話概括就是為了節(jié)省人力成本。 具體來說,包括以下幾點: ● 減輕自己工作量,把

    2024年01月23日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包