Selenium+PhantomJS使用时报错原因

运行下面代码:‘‘‘PhantomJS运用‘‘‘

from selenium import webdriverimport time

# 通过keys模拟键盘from selenium.webdriver.common.keys import Keys

# 操作哪个浏览器对哪个浏览器建一个实例# 自动按照环境变量查找相应的浏览器driver = webdriver.PhantomJS()

# 如果浏览器没有在相应环境变量中,需要指定浏览器位置driver.get("http://www.baidu.com")

#  通过函数查找title标签print("Title: {0}".format(driver.title))

报错信息:

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,了,建议使用火狐或者谷歌无界面浏览器。

解决方案:

方案一:降级selenium

pip install selenium==2.48.0

方案二:使用火狐或谷歌

下面使用谷歌方法:

from selenium import webdriverfrom selenium.webdriver.common.keys import Keysimport time

driver = webdriver.Chrome()url = "http://www.baidu.com"

driver.get(url)

text = driver.find_element_by_id(‘wrapper‘).textprint(text)

print(driver.title)

# 得到页面的快照driver.save_screenshot(‘index.png‘)

# id = "kw" 是百度的输入框,我们得到输入框后,直接输入"大熊猫"driver.find_element_by_id(‘kw‘).send_keys(u"大熊猫")

# id = "su" 是百度搜索的按钮 + click模拟点击driver.find_element_by_id(‘su‘).click()

time.sleep(5)driver.save_screenshot("daxiongmao.png")

# 得到当前页面的cookieprint(driver.get_cookies())

# 模拟输入两个按键 ctrl+adriver.find_element_by_id(‘kw‘).send_keys(Keys.CONTROL,‘a‘)

# ctrl + x 剪切driver.find_element_by_id(‘kw‘).send_keys(Keys.CONTROL,‘x‘)

driver.find_element_by_id(‘kw‘).send_keys(u‘航空母舰‘)driver.save_screenshot(‘hangkongmujian.png‘)

driver.find_element_by_id(‘su‘).send_keys(Keys.RETURN)

time.sleep(5)driver.save_screenshot(‘hangmu2.png‘)

driver.find_element_by_id(‘kw‘).clear()driver.save_screenshot(‘clear.png‘)

# 关闭浏览器driver.quit()

原文地址:https://www.cnblogs.com/jerryspace/p/9887153.html

时间: 2024-10-06 01:15:10

Selenium+PhantomJS使用时报错原因的相关文章

Selenium+PhantomJS使用时报错原因及解决方案

问题今天在使用selenium+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 headle

Python2在Sublime Text3中print中文时报错原因及解决办法

1,出现的问题及分析 在Sublime Text3中用ctrl+B运行python程序时,如果要打印输出英文时正常运行,而输出中文时则会报错,具体情况如下: Traceback (most recent call last): File "D:\PythonWorkplace\test_print_unicode.py", line 3, in <module> print u'程序' UnicodeEncodeError: 'ascii' codec can't enco

python中用selenium调Firefox报错问题

python在用selenium调Firefox时报错: Traceback (most recent call last):  File "G:\python_work\chapter11\test_selenium_firefox.py", line 10, in <module>    driver = webdriver.Firefox()  File "C:\Python34\lib\site-packages\selenium\webdriver\fi

OVF3为订单原因分配成本中心时报错“成本中心未定义”,消息号:VT806

问题:OVF3为订单原因分配成本中心时报错"成本中心未定义",消息号:VT806.KS03检查成本中心数据是已经建立的. 原因:OVF3往右边拉动,还有一个需要填入的字段"有效起始日",此字段值必须在成本中心定义的有效期范围内,若超出范围,则会报上面的错误. 解决方案:看完原因分析就知道啦,哈 原文地址:https://www.cnblogs.com/bobbymei/p/9415135.html

【selenium+Python unittest】之发送邮箱时报错:smtplib.SMTPDataError、smtplib.SMTPAuthenticationError(例:126邮箱)

原代码如下: import smtplib from email.mime.text import MIMEText from email.header import Header #要发送的服务器 smtpserver = 'smtp.126.com' #要发送的邮箱用户名/密码 user = 'XXX@126.com' password = 'XXX' #发送的邮箱 sender = 'XXX@126.com' #接收的邮箱 receiver = 'XXX@qq.com' #发送邮箱主题 s

C#使用Selenium+PhantomJS抓取数据

手头项目需要抓取一个用js渲染出来的网站中的数据.使用常用的httpclient抓回来的页面是没有数据.上网百度了一下,大家推荐的方案是使用PhantomJS.PhantomJS是一个没有界面的webkit浏览器,能够和浏览器效果一致的使用js渲染页面.Selenium是一个web测试框架.使用Selenium来操作PhantomJS绝配.但是网上的例子多是Python的.无奈,下载了python按照教程搞了一下,卡在了Selenium的导入问题上.遂放弃,还是用自己惯用的c#吧,就不信c#上没

盘点selenium phantomJS使用的坑

说到python爬虫,刚开始主要用urllib库,虽然接口比较繁琐,但也能实现基本功能.等见识了requests库的威力后,便放弃urllib库,并且也不打算回去了.但对一些动态加载的网站,经常要先分析请求,再用requests模拟,比较麻烦.直到遇到了selenium库,才发现爬动态网页也可以这么简单,果断入坑! selenium是python的一个第三方自动化测试库,虽然是测试库,却也非常适合用来写爬虫,而phantomJS是其子包webdriver下面的一个浏览器.phantomJS本身是

selenium&amp;phantomJs相关

问题:处理页面动态加载数据的爬取 selenium phantomJs selenium: 三方库,可以实现让浏览器完成自动化操作 - 环境搭建 1 安装: pip install selenium 2 获取浏览器的驱动程序 下载地址:http://chromedriver.storage.googleapis.com/index.html 浏览器版本和驱动版本的对应关系表网址https://blog.csdn.net/huilan_same/article/details/51896672 使

apache添加模块时报错:module status_module is built-in and can&#39;t be loaded

在使用cacti监控linux主机上的apache时,apache需要加载 mod_status.so 模块. 编辑httpd.conf,手动添加下行: LoadModule status_module modules/mod_status.so 在重启apache时报错如下: httpd: Syntax error on line 58 of /etc/httpd/httpd.conf: module status_module is built-in and can't be loaded