Selenium+PhantomJS使用时报错原因
Posted 玉米炖排骨
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Selenium+PhantomJS使用时报错原因相关的知识,希望对你有一定的参考价值。
运行下面代码:
‘‘‘
PhantomJS运用
‘‘‘
from selenium import webdriver
import 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 webdriver
from selenium.webdriver.common.keys import Keys
import time
driver = webdriver.Chrome()
url = "http://www.baidu.com"
driver.get(url)
text = driver.find_element_by_id(‘wrapper‘).text
print(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")
# 得到当前页面的cookie
print(driver.get_cookies())
# 模拟输入两个按键 ctrl+a
driver.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()
以上是关于Selenium+PhantomJS使用时报错原因的主要内容,如果未能解决你的问题,请参考以下文章
Ubuntu 下selenium + Chrome 的安装使用
python安装selenium时报错CERTIFICATE_VERIFY_FAILED
selenium + python之BSTestRunner生成测试报告时报错:NameError: name 'unicode' is not defined
selenium + python之BSTestRunner生成测试报告时报错:NameError: name 'unicode' is not defined