专栏首页运维经验分享Selenium最新版本不再支持PhantomJS

Selenium最新版本不再支持PhantomJS

Selenium最新版本不再支持PhantomJS

今天想对《自动读取单位某系统数据》一文中的项目做些优化,将Selenium+firefox改为无界面的PhantomJS,出现如下错误:

UserWarning: Selenium support for PhantomJS has been deprecated, please use headless versions of Chrome or Firefox instead
  warnings.warn('Selenium support for PhantomJS has been deprecated, please use headless '

百度:意思是说Selenium不再支持PhantomJS,请用无界面版本的chrome或firefox代替。

  • 完美解决方法转发自这个博客:Selenium+PhantomJS使用时报错原因及解决方案
  • 在使用webdriver驱动器文件时,建议还是将其解压至某个目录,再手动指定executable_path参数,省得去设置环境参数(主要是因为我的mac里设置后总是不能用)。

使用无界面浏览器

Selenium+Headless Firefox

Selenium+Headless FirefoxSelenium+Firefox,区别就是实例option的时候设置-headless参数。

前提条件:

  • 本地安装Firefox浏览器
  • 本地需要geckodriver驱动器文件,如果不配置环境变量的话,需要手动指定executable_path参数。

示例代码:

from selenium.webdriver import Firefox
from selenium.webdriver.firefox.options import Options


def main():
    options = Options()
    options.add_argument('-headless')
    driver = Firefox(executable_path='./geckodriver', firefox_options=options)
    driver.get("https://www.qiushibaike.com/8hr/page/1/")
    print(driver.page_source)
    driver.close()


if __name__ == '__main__':
    main()

Selenium+Headless Chrome

Firefox类似,双手奉上。

前提条件:

  • 本地安装Chrome浏览器
  • 本地需要chromedriver驱动器文件,如果不配置环境变量的话,需要手动指定executable_path参数。

示例:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options


def main():
    chrome_options = Options()
    chrome_options.add_argument('--headless')
    chrome_options.add_argument('--disable-gpu')
    driver = webdriver.Chrome(executable_path='./chromedriver', chrome_options=chrome_options)
    driver.get("https://www.baidu.com")
    print(driver.page_source)
    driver.close()


if __name__ == '__main__':
    main()

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • centos7无GUI情况安装Xvfb、selenium、chrome

    最近需要用到selenium浏览器抓取,在windows下对照chrome浏览器开发的代码,在linux服务器上换成phantomjs驱动后,却不能运行了,通过...

    拓荒者
  • 在自动化测试中,重要的不是工具

    经常有人在公众号留言或是微信问我,做自动化测试用什么工具好,或是学哪门编程语言好呢?

    苦叶子
  • selenium webdriver 启动三大浏览器Firefox,Chrome,IE

         1. 进入Python官方网站:https://www.python.org/downloads/  下载并安装最新版本的Python(建议安装Pyt...

    拓荒者
  • selenium + firefox + webdriver 遇到的坑

    采用多线程调用webdriver时候,偶尔会出现这样的错:selenium.common.exceptions.WebDriverException: Mess...

    拓荒者
  • Selenium Webdriver 在当前浏览器 Context 中 执行 JS 脚本。 Execute JavaScript based code using Selenium Webdriver

    In Selenium Webdriver, locators like XPath, CSS, etc. are used to identify and p...

    一个会写诗的程序员
  • 一日一技:在Selenium中如何缩放网页(不是窗口)

    那么如果我并不想修改窗口大小,只想修改页面大小怎么办?类似于Windows/Linux下按 Ctrl+加号或者 Ctrl+减号;macOS下按`Command ...

    青南
  • 干货,不小心执行了rm -f,除了跑路,如何恢复?

    每当我们在生产环境服务器上执行rm命令时,总是提心吊胆的,因为一不小心执行了误删,然后就要准备跑路了,毕竟人不是机器,更何况机器也有bug,呵呵。

    justmine
  • 一日一技:如何正确移除Selenium中window.navigator.webdriver的值

    有不少朋友在开发爬虫的过程中喜欢使用Selenium + Chromedriver,以为这样就能做到不被网站的反爬虫机制发现。

    青南
  • 在自动化测试中,重要的不是工具

    经常有人在公众号留言或是微信问我,做自动化测试用什么工具好,或是学哪门编程语言好呢?

    用户2149234

扫码关注云+社区

领取腾讯云代金券