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使用时报错原因的主要内容,如果未能解决你的问题,请参考以下文章

使用chromedriver时报错

Ubuntu 下selenium + Chrome 的安装使用

selenium在使用sendkeys()时报错

python安装selenium时报错CERTIFICATE_VERIFY_FAILED

selenium + python之BSTestRunner生成测试报告时报错:NameError: name 'unicode' is not defined

selenium + python之BSTestRunner生成测试报告时报错:NameError: name 'unicode' is not defined