Selenium 啟動Webdriver問題匯總


webdriver-manage用法

https://www.cnblogs.com/zibinchen/p/14310637.html

如果研習該篇文檔,以下webdriver各類問題即可忽略,不必再看

安裝selenium版本

 命令行輸入pip show selenium

pip install selenium

准備各瀏覽器webdriver

建議:不要使用當前時間最新的瀏覽器版本,因為新版不一定穩定,容易產生一系列問題,往前推一兩個版本為合適

禁止chrome升級辦法

mac: 

# 在終端輸入:
cd ~/Library/Google
sudo chown root:wheel GoogleSoftwareUpdate
# 打開chrome-幫助-關於chrome,看效果

Chrome瀏覽器

歷史版本:https://dl.lancdn.com/landian/soft/chrome/m/?utm_sources=DownPageBot

ChromeDriver倉庫:http://chromedriver.storage.googleapis.com/index.html

 

Firefox瀏覽器

 【GeckoDriver倉庫】https://github.com/mozilla/geckodriver/releases

GeckoDriver用於驅動Firefox,在這之前請確保已經正確安裝好了Firefox瀏覽器並可以正常運行。

 

Edge瀏覽器

Microsoft Edge Webdriver:https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/

Microsoft Edge Brower:

鏈接:https://pan.baidu.com/s/1fmCLge1l80i8ERHNuTjeQg
提取碼:frjy

 【關閉Edge自動更新】

1、WIN+R,輸入services.msc

2、找到Windows Upadate雙擊,選擇禁用,點擊確定

webdriver安放位置

 可以隨便放,但需要知道路徑

建議放在啟動配置文件同級目錄下

chrome指定下載路徑並允許下載多個文件

 

elif browser == "chrome":
        from selenium.webdriver.chrome.options import Options
        options = webdriver.ChromeOptions()
        prefs = {
            'profile.default_content_settings.popups': 0,
            'download.default_directory': excelpath, "profile.default_content_setting_values.automatic_downloads": 1}
        options.add_experimental_option('prefs', prefs) # 指定下載路徑,並且允許下載多個文件
        driver = webdriver.Chrome(
            executable_path=chrome_driver,
            chrome_options=options)
        return driver

Selenium啟動webdriver寫法

封裝好啟動webdriver的方法

注:通過webdriver-manager自動下載driver

#!/usr/config/env python
# -*- coding:utf-8 -*-

from selenium import webdriver
from webdriver_manager.firefox import GeckoDriverManager
from webdriver_manager.chrome import ChromeDriverManager
from webdriver_manager.microsoft import EdgeChromiumDriverManager
from webdriver_manager.microsoft import IEDriverManager
from webdriver_manager.opera import OperaDriverManager
from config.conf import cm


def browser(browser='chrome'):
    if browser == "firefox" or browser == "ff":
        profile = webdriver.FirefoxProfile()
        profile.set_preference('browser.download.dir', cm.download_path)  # 相同類型的文件上一次的下載保存位置
        profile.set_preference('browser.download.folderList',
                               2)  # 設置Firefox的默認下載文件夾。0是桌面;1是“我的下載”;2是自定義。這一選項你可以直接在“首選項-下載-將所有文件保存在此文件夾”中修改。但請注意,如果你在“首選項-下載-保存每個文件夾前詢問存儲位置“(也就是要求彈出下載對話框),那么本選項無效
        profile.set_preference('browser.download.manager.showWhenStarting',
                               False)  # 'application/octet-stream'對應下載的文件格式是rar
        profile.set_preference('browser.helperApps.neverAsk.saveToDisk', 'application/octet-stream')
        driver = webdriver.Firefox(executable_path=GeckoDriverManager().install(), firefox_profile=profile)
    elif browser == "ff_headless":
        profile = webdriver.FirefoxProfile()
        profile.set_preference('browser.download.dir', cm.download_path)
        profile.set_preference('browser.download.folderList', 2)
        profile.set_preference('browser.download.manager.showWhenStarting', False)
        profile.set_preference('browser.helperApps.neverAsk.saveToDisk', 'application/octet-stream')
        from selenium.webdriver.firefox.options import Options
        firefox_options = Options()
        firefox_options.add_argument('--headless')
        driver = webdriver.Firefox(executable_path=GeckoDriverManager().install(), firefox_profile=profile,
                                   options=firefox_options)
    elif browser == "chrome":
        options = webdriver.ChromeOptions()
        prefs = {
            'profile.default_content_settings.popups': 0,
            'download.default_directory': cm.download_path,
            "profile.default_content_setting_values.automatic_downloads": 1}
        options.add_experimental_option('prefs', prefs)  # 指定下載路徑,並且允許下載多個文件
        driver = webdriver.Chrome(executable_path=ChromeDriverManager().install(), options=options)
    elif browser == "chrome_headless":
        options = webdriver.ChromeOptions()
        prefs = {
            'profile.default_content_settings.popups': 0,
            'download.default_directory': cm.download_path,
            "profile.default_content_setting_values.automatic_downloads": 1}
        options.add_experimental_option('prefs', prefs)
        options.add_argument('-headless')
        driver = webdriver.Chrome(executable_path=ChromeDriverManager().install(), options=options)
    elif browser == "chrome_linux":
        options = webdriver.ChromeOptions()
        prefs = {
            'profile.default_content_settings.popups': 0,
            'download.default_directory': cm.download_path,
            "profile.default_content_setting_values.automatic_downloads": 1}
        options.add_experimental_option('prefs', prefs)
        options.add_argument('-headless')
        options.add_argument('--no-sandbox')
        options.add_argument('--disable-dev-shm-usage')
        driver = webdriver.Chrome(executable_path=ChromeDriverManager().install(), options=options)
    elif browser == "edge":
        driver = webdriver.Edge(executable_path=EdgeChromiumDriverManager().install())
    elif browser == "IE":
        driver = webdriver.Ie(executable_path=IEDriverManager().install())
    elif browser == "opera":
        driver = webdriver.Opera(executable_path=OperaDriverManager().install())
    return driver


if __name__ == '__main__':
    browser('chrome')

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM