自動化測試工具,seleium
pip install selenium
無界面瀏覽器PhantomJS
PhantomJS 是一個基于Webkit的“無界面”(headless)瀏覽器,它會把網站加載到內存并執行頁面上的 JavaScript,因為不會展示圖形界面,所以運行起來比完整的瀏覽器要高效。
注意:PhantomJS 只能從它的官方網站(http://phantomjs.org/download.html)下載。 因為 PhantomJS 是一個功能完善(雖然無界面)的瀏覽器而非一個 Python 庫,所以它不需要像 Python 的其他庫一樣安裝,但我們可以通過Selenium調用PhantomJS來直接使用。
# 導入 webdriver
from selenium import webdriver
# 要想調用鍵盤按鍵操作需要引入keys包
from selenium.webdriver.common.keys import Keys
# 調用環境變量指定的PhantomJS瀏覽器創建瀏覽器對象
driver = webdriver.PhantomJS()
# 如果沒有在環境變量指定PhantomJS位置
# driver = webdriver.PhantomJS(executable_path="./phantomjs"))
# get方法會一直等到頁面被完全加載,然后才會繼續程序,通常測試會在這里選擇 time.sleep(2)
driver.get("http://www.baidu.com/")
# 獲取頁面名為 wrapper的id標簽的文本內容
data = driver.find_element_by_id("wrapper").text
# 打印數據內容
print data
# 打印頁面標題 "百度一下,你就知道"
print driver.title
# 生成當前頁面快照并保存
driver.save_screenshot("baidu.png")
# id="kw"是百度搜索輸入框,輸入字符串"長城"
driver.find_element_by_id("kw").send_keys(u"長城")
# id="su"是百度搜索按鈕,click() 是模擬點擊
driver.find_element_by_id("su").click()
# 獲取新的頁面快照
driver.save_screenshot("長城.png")
# 打印網頁渲染后的源代碼
print driver.page_source
# 獲取當前頁面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("itcast")
# 模擬Enter回車鍵
driver.find_element_by_id("su").send_keys(Keys.RETURN)
# 清除輸入框內容
driver.find_element_by_id("kw").clear()
# 生成新的頁面快照
driver.save_screenshot("itcast.png")
# 獲取當前url
print driver.current_url
# 關閉當前頁面,如果只有一個頁面,會關閉瀏覽器
# driver.close()
# 關閉瀏覽器
driver.quit()