Selenium+PhantomJS使用時報錯原因
阿新 • • 發佈:2018-11-01
執行下面程式碼:
'''
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()