下面是一個簡單的實例
#coding:utf-8 import time from selenium import webdriver from selenium.webdriver.common.keys import Keys browser = webdriver.Chrome() browser.get('http://www.baidu.com') assert "百度" in browser.title elem = browser.find_element_by_id("kw") elem.send_keys("今日熱點") elem.send_keys(Keys.RETURN) time.sleep(20) browser.close()
分析該實例
由於該編碼涉及中文,因此在前端聲明解碼個稅為utf-8
#coding:utf-8
selenium.webdriver模塊提供了一個webdriver的實現, 目前可以支持Firefox, Chrome, IE 和Remote。
Keys模塊提供了一些鍵盤操作,如 Return, F1, ALT 等等
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
接着,創建一個瀏覽器實例Chrome
browser = webdriver.Chrome()
如果創建IE,可以采用以下方式
browser = webdriver.Ie()
當你第一次運行,可能出現錯誤提示
selenium.common.exceptions.WebDriverException: Message: IEDriver executable needs to be available in the path.
是因為執行這些實例需要添加相應的driver
然后通過get函數訪問url。這里需要聲明的是get函數會等待頁面安全加載以后,才會將控制權交回python 腳本, 否則一直等待。
當頁面加載完成后,判斷該網頁的title是否包含 “百度”
browser.get('http://www.baidu.com')
assert "百度" in browser.title
打開百度后,研究百度的編碼,這里可以用Chrome按F12鍵進行源碼分析
1. 從源碼分析可知,搜索框輸入表格的id為kw
elem = browser.find_element_by_id("kw")
2. 像搜索框中發送關鍵字
elem.send_keys("今日熱點")
3. 模擬鍵盤Enter鍵提交搜索需求
elem.send_keys(Keys.RETURN)
最后等待20秒后,關閉瀏覽器
browser.close()