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

Selenium - 自動下載 webdriver

這篇具有很好參考價(jià)值的文章主要介紹了Selenium - 自動下載 webdriver。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

背景

  • 很多瀏覽器會自動更新,但是 driver 不會自動更新。為了確保 driver 版本和瀏覽器匹配,可以使用第三方庫 webdriver_manager

代碼

  • 這個(gè)文件里封裝了幾個(gè)函數(shù)
    • driver_seek : 根據(jù)給定的目錄,和文件名稱,查找該目錄下是否有這個(gè)文件
    • driver_download : 下載 webdriver 到指定目錄,如果path參數(shù)不指定,會下載到 C:\Users\當(dāng)前用戶名 目錄下,如果指定path,就下載到指定目錄 —— 我因?yàn)橛卸鄠€(gè)使用Selenium 的爬蟲項(xiàng)目,所以會把 driver 下載到1個(gè)公用目錄下
    • driver_test : 測試上面這兩個(gè)函數(shù)是否工作正常
# !/usr/bin/env python3
# _*_ coding:utf-8 _*_
"""
@File               : init_webdriver.py
@Project            : Scrapy
@CreateTime         : 2023/1/2 17:02
@Author             : biaobro
@Software           : PyCharm
@Last Modify Time   : 2023/1/2 17:02
@Version            : 1.0
@Description        : None
    @20230207
    # 安裝webdriver-manager : pip install webdriver-manager
    # webdriver-manager 在python3.11 下報(bào)錯(cuò)無法使用,改用python3.10 后正常
    # 這個(gè)文件只需要完成 檢測目標(biāo)是否存在,如果不存在就下載的任務(wù)就好了,不需要做額外的設(shè)置,應(yīng)用層的設(shè)置交給應(yīng)用層
    # 如果不寫main 函數(shù),被導(dǎo)入時(shí)就會自動執(zhí)行
"""
from selenium import webdriver

# chrome, firefox, edge, IE
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.service import Service as ChromeService
import os


# from webdriver_manager.firefox import GeckoDriverManager
# from webdriver_manager.microsoft import EdgeChromiumDriverManager
# from webdriver_manager.microsoft import IEDriverManager


def driver_seek(folder_name, file_name):
    """根據(jù)輸入的文件名稱查找對應(yīng)的文件夾有無改文件,有則返回文件路徑"""
    for root, dirs, files in os.walk(folder_name):
        if file_name in files:
            # 當(dāng)層文件內(nèi)有該文件,輸出文件地址
            path = os.path.join(root, file_name)  # r'{0}\{1}'.format(root, file_name)
            print(path)
            print('the driver has already been there. you could load it freely.')
            return path
    print(file_name + " doesn't exist in " + folder_name + ', please download it firstly.')
    return None


def driver_download(path=None):
    try:
        # 默認(rèn) webdriver 會被下載到  .home/.wdm folder
        # 本機(jī) [C:\Users\biaob\.wdm\drivers\chromedriver\win32\97.0.4692.71\chromedriver.exe]

        # silent logs and remove them from console
        # os.environ['WDM_LOG_LEVEL'] = '0'

        # disable the blank space in first line
        # os.environ['WDM_PRINT_FIRST_LINE'] = 'False'

        # 如果沒有指定path參數(shù),就下載到項(xiàng)目路徑
        # 如果指定,就下載到指定路徑
        if path is None:
            # By default, all driver binaries are saved to user.home/.wdm folder.
            # You can override this setting and save binaries to project.root/.wdm.
            # 設(shè)置 'WDM_LOCAL' = '1' 修改設(shè)置,下載文件到項(xiàng)目路徑
            os.environ['WDM_LOCAL'] = '1'

            # 下載地址:https://chromedriver.chromium.org/downloads
            # 老式寫法
            # browser = webdriver.Chrome(executable_path=ChromeDriverManager().install())  # , options=options)

            # 新式寫法
            print("driver will be downloaded into default project folder.")
            ChromeService(ChromeDriverManager().install())
        else:
            # Set the directory where you want to download and save the webdriver.
            # You can use relative and absolute paths.
            print("driver will be downloaded into specified folder.")
            path = ChromeDriverManager().install()
            print(path)
        return True
    except Exception as e:
        print(e)
        return False


def driver_test(path, url="https://www.baidu.com"):
    driver_path = driver_init()
    # option set to avoid 'data' show in address bar
    options = webdriver.ChromeOptions()
    # options.add_argument('--no-sandbox')
    # options.add_argument('--disable-dev-shm-usage')
    # options.add_argument(r"user-data-dir=data")
    # options.add_argument(r"headless")
    browser = webdriver.Chrome(service=ChromeService(path), options=options)
    browser.get(url)
    if browser.title == "百度一下,你就知道":
        print("selenium browser headless mode visit Baidu test passed.")
    elif browser.title is not None:
        print(f"selenium browser headless mode visit {url} test passed.")
    else:
        print("selenium browser headless mode test failed!")
    # quit 必須要有,否則停留后臺,需要在任務(wù)管理器中手動關(guān)閉
    browser.quit()


# specify the path directly
# 指定本地目錄
# driver = webdriver.Chrome('D:\Download\chromedriver_win32\chromedriver.exe')

# 用法示例
def driver_init():
    parent_directory = r'..\\'
    file_name = r'chromedriver.exe'

    driver_path = driver_seek(parent_directory, file_name)

    if driver_path is not None:
        return driver_path
    else:
        driver_download(parent_directory)
        return driver_seek(parent_directory, file_name)

運(yùn)行效果

selenium webdriver下載,selenium,測試工具

?文章來源地址http://www.zghlxwxcb.cn/news/detail-735546.html

到了這里,關(guān)于Selenium - 自動下載 webdriver的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 安裝Selenium報(bào)錯(cuò)解決&webdriver下載

    安裝Selenium報(bào)錯(cuò)解決&webdriver下載

    一、安裝Selenium報(bào)錯(cuò)解決 在安裝Selenium模塊的時(shí)候就報(bào)錯(cuò) ERROR: Cannot uninstall \\\'certifi\\\'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall. 就試了一下pip install certifi --ignore-installed ?然后就成功了(pip install Selenium #這個(gè)

    2024年02月04日
    瀏覽(28)
  • 自動化測試框架selenium之webdriver

    對象的定位應(yīng)該是自動化測試的核心,要想操作一個(gè)對象,首先應(yīng)該識別這個(gè)對象,一個(gè)對象有很多的屬性,我們可以通過這些屬性找到對象。 注意:不管用那種方式,必須保證頁面上該屬性的唯一性 webdriver 提供了一系列的對象定位方法,常用的有以下幾種 id name class nam

    2024年02月12日
    瀏覽(21)
  • 自動化測試工具-Selenium:Selenium的核心三大組件詳解

    自動化測試工具-Selenium:Selenium的核心三大組件詳解

    目錄 1. WebDriver 1.1 WebDriver的通信方式 1.2 WebDriver的功能 1.3 W3C推薦標(biāo)準(zhǔn) 2. Grid 3. IDE Selenium 是支持 web 瀏覽器自動化的一系列工具和庫的綜合項(xiàng)目。官方對Selenium認(rèn)可的三大組件或API分別是: WebDriver、Selenium IDE、Grid。 其中,WebDriver又被稱為Selenium的核心。 下面本篇文章將深度介

    2024年02月03日
    瀏覽(52)
  • WebDriver+Selenium實(shí)現(xiàn)瀏覽器自動化

    WebDriver+Selenium實(shí)現(xiàn)瀏覽器自動化

    Selenium是一款可以自動化操作瀏覽器的開源項(xiàng)目,最初的目的是瀏覽器功能的自動化測試,但是隨著項(xiàng)目的發(fā)展,人們根據(jù)它的特性也用來做一些更多的有意思的功能而不僅僅是UI的自動化測試工具。就像Selenium官方網(wǎng)站上描述的那樣,Selenium可以自動化操縱瀏覽器。完了!你

    2024年02月03日
    瀏覽(23)
  • 【java+selenium+WebDriver】實(shí)現(xiàn)谷歌PDF下載(打?。┕δ? decoding=
  • Python+Selenium webdriver mange用法-告別手動下載driver

    Python+Selenium webdriver mange用法-告別手動下載driver

    通常使用selenium時(shí)候我們需要自己單獨(dú)去下載對應(yīng)各瀏覽器版本的webdriver,并在后期針對不同操作系統(tǒng)(mac、windows、linux)或者不同瀏覽器版本都要反復(fù)選擇對應(yīng)版本webdriver 為了解決以上問題,webdriver-manage第三方庫營運(yùn)而生,它可以自動幫你識別當(dāng)前運(yùn)行環(huán)境下系統(tǒng)信息以及

    2024年02月15日
    瀏覽(45)
  • 自動化測試工具——Selenium詳解

    自動化測試工具——Selenium詳解

    Selenium是一個(gè)用于Web應(yīng)用程序測試的工具。是一個(gè)開源的Web的自動化測試工具,最初是為網(wǎng)站自動化測試而開發(fā)的,類型像我們玩游戲用的按鍵精靈,可以按指定的命令自動操作,不同是Selenium可以直接運(yùn)行在瀏覽器上,它支持所有主流的瀏覽器,支持的瀏覽器包括IE(7, 8,

    2024年01月20日
    瀏覽(24)
  • 瀏覽器自動化腳本 Selenium WebDriver 快速入門

    瀏覽器自動化腳本 Selenium WebDriver 快速入門

    2024軟件測試面試刷題,這個(gè)小程序(永久刷題),靠它快速找到工作了?。ㄋ㈩}APP的天花板)_軟件測試刷題小程序-CSDN博客 文章瀏覽閱讀2.7k次,點(diǎn)贊85次,收藏12次。你知不知道有這么一個(gè)軟件測試面試的刷題小程序。里面包含了面試常問的軟件測試基礎(chǔ)題,web自動化測試、

    2024年03月09日
    瀏覽(26)
  • 如何使用自動化測試工具Selenium?

    如何使用自動化測試工具Selenium?

    哈嘍,大家好,我是小浪。那么有一段時(shí)間沒有更新了,還是在忙實(shí)習(xí)和秋招的事情,那么今天也是實(shí)習(xí)正式結(jié)束啦,開始繼續(xù)更新我們的學(xué)習(xí)博客,后期主要是開發(fā)和測試的學(xué)習(xí)博客內(nèi)容巨多,感興趣的小伙伴們可以一鍵三連支持一下歐~ 目錄 一、什么是自動化測試? 二、

    2024年02月11日
    瀏覽(100)
  • python自動化測試工具selenium

    selenium 是網(wǎng)頁應(yīng)用中最流行的自動化測試工具,可以用來做自動化測試或者瀏覽器爬蟲等。官網(wǎng)地址為:Selenium。相對于另外一款web自動化測試工具QTP來說有如下優(yōu)點(diǎn): 免費(fèi)開源輕量級,不同語言只需要一個(gè)體積很小的依賴包 支持多種系統(tǒng),包括Windows,Mac,Linux 支持多種瀏

    2024年02月08日
    瀏覽(26)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包