1. 程式人生 > >Selenium+PhantomJS使用時報錯原因

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()