zoukankan      html  css  js  c++  java
  • linux中配置selenium运行环境及selenium无界面运行

    一、在linux中使用selenium

    1、安装chrome
    用下面的命令安装Google Chrome
    yum install https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
    也可以先下载至本地,然后安装
    wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
    yum install ./google-chrome-stable_current_x86_64.rpm
     
    安装必要的库
    yum install mesa-libOSMesa-devel gnu-free-sans-fonts wqy-zenhei-fonts
     
    2、安装 chromedriver(末尾附chrome和chromedriver的对应版本)
    chrome官网
    wget https://chromedriver.storage.googleapis.com/2.38/chromedriver_linux64.zip
    淘宝源(推荐)
    wget http://npm.taobao.org/mirrors/chromedriver/2.41/chromedriver_linux64.zip
     
    将下载的文件解压,放在如下位置
    unzip chromedriver_linux64.zip
    mv chromedriver /usr/bin/
    给予执行权限
    chmod +x /usr/bin/chromedriver
     
    3、运行代码,查看是否成功(python下)
    from selenium import webdriver
    driver = webdriver.Chrome()
     
    ------------2019年兼容版本对照表-----------
    ChromeDriver 78.0.3904.11 (2019-09-12)---------Supports Chrome version 78
    ChromeDriver 77.0.3865.40 (2019-08-20)---------Supports Chrome version 77
    ChromeDriver 76.0.3809.12 (2019-06-07)---------Supports Chrome version 76
    ChromeDriver 75.0.3770.8 (2019-04-29)---------Supports Chrome version 75
    ChromeDriver v74.0.3729.6 (2019-03-14)--------Supports Chrome v74
    ChromeDriver v2.46 (2019-02-01)----------Supports Chrome v71-73
     

    二、chrome无界面模式运行

    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    
    chrome_options = Options()
    chrome_options.add_argument('--no-sandbox')#解决DevToolsActivePort文件不存在的报错
    chrome_options.add_argument('window-size=1920x3000') #指定浏览器分辨率
    chrome_options.add_argument('--disable-gpu') #谷歌文档提到需要加上这个属性来规避bug
    chrome_options.add_argument('--hide-scrollbars') #隐藏滚动条, 应对一些特殊页面
    chrome_options.add_argument('blink-settings=imagesEnabled=false') #不加载图片, 提升速度
    chrome_options.add_argument('--headless') #浏览器不提供可视化页面. linux下如果系统不支持可视化不加这条会启动失败
    
    #创建浏览器对象
    driver = webdriver.Chrome(executable_path=path, chrome_options=chrome_options)#executable_path:浏览器驱动路径
    driver.get(url)
    

     三、无界面模式下下载文件

    以前,以无头模式运行的Chromedriver无法正确下载文件,原因是它稀疏地解析提供给它的首选项文件。无头Chrome团队的工程师建议使用DevTools的“ Page.setDownloadBehavior”来解决此问题。此变更列表实现此修复程序。下载的文件默认为当前目录,可以在实例化chromedriver实例时使用download_dir进行设置。还添加了测试以确保正确的下载功能。

    params = {'behavior': 'allow', 'downloadPath': r'C:UsersDebanjan.BDownloads'}
    driver.execute_cdp_cmd('Page.setDownloadBehavior', params)
    

     

  • 相关阅读:
    Working with WordprocessingML documents (Open XML SDK)
    How to Choose the Best Way to Pass Multiple Models in ASP.NET MVC
    Azure:Manage anonymous read access to containers and blobs
    Convert HTML to PDF with New Plugin
    location.replace() keeps the history under control
    On the nightmare that is JSON Dates. Plus, JSON.NET and ASP.NET Web API
    HTTP Modules versus ASP.NET MVC Action Filters
    解读ASP.NET 5 & MVC6系列(6):Middleware详解
    Content Negotiation in ASP.NET Web API
    Action Results in Web API 2
  • 原文地址:https://www.cnblogs.com/crystal1126/p/13259204.html
Copyright © 2011-2022 走看看