1.什么是selenium
1.什么是selenium? (1)Selenium是一個用於Web應用程序測試的工具。 (2)Selenium 測試直接運行在瀏覽器中,就像真正的用戶在操作一樣。 (3)支持通過各種driver(FirfoxDriver,IternetExplorerDriver,OperaDriver,ChromeDriver)驅動 真實瀏覽器完成測試。 (4)selenium也是支持無界面瀏覽器操作的。
2.為什么使用selenium? 模擬瀏覽器功能,自動執行網頁中的js代碼,實現動態加載
3.如何安裝selenium? (1)操作谷歌瀏覽器驅動下載地址 http://chromedriver.storage.googleapis.com/index.html (2)谷歌驅動和谷歌瀏覽器版本之間的映射表 http://blog.csdn.net/huilan_same/article/details/51896672 (3)查看谷歌瀏覽器版本 谷歌瀏覽器右上角‐‐>幫助‐‐>關於 (4)pip install selenium
4.selenium的使用步驟? (1)導入:from selenium import webdriver (2)創建谷歌瀏覽器操作對象: path = 谷歌瀏覽器驅動文件路徑 browser = webdriver.Chrome(path) (3)訪問網址 url = 要訪問的網址 browser.get(url)
4‐1:selenium的元素定位? 元素定位:自動化要做的就是模擬鼠標和鍵盤來操作來操作這些元素,點擊、輸入等等。操作這些元素前首先 要找到它們,WebDriver提供很多定位元素的方法 方法: 1.find_element_by_id eg:button = browser.find_element_by_id('su') 2.find_elements_by_name eg:name = browser.find_element_by_name('wd') 3.find_elements_by_xpath eg:xpath1 = browser.find_elements_by_xpath('//input[@id="su"]') 4.find_elements_by_tag_name eg:names = browser.find_elements_by_tag_name('input') 5.find_elements_by_css_selector eg:my_input = browser.find_elements_by_css_selector('#kw')[0] 6.find_elements_by_link_text eg:browser.find_element_by_link_text("新聞")
4‐2:訪問元素信息 獲取元素屬性 .get_attribute('class') 獲取元素文本 .text 獲取標簽名 .tag_name
4‐3:交互 點擊:click() 輸入:send_keys() 后退操作:browser.back() 前進操作:browser.forword() 模擬JS滾動: js='document.documentElement.scrollTop=100000' browser.execute_script(js) 執行js代碼 獲取網頁代碼:page_source 退出:browser.quit()
2.Phantomjs
1.什么是Phantomjs? (1)是一個無界面的瀏覽器 (2)支持頁面元素查找,js的執行等 (3)由於不進行css和gui渲染,運行效率要比真實的瀏覽器要快很多
2.如何使用Phantomjs? (1)獲取PhantomJS.exe文件路徑path (2)browser = webdriver.PhantomJS(path) (3)browser.get(url) 擴展:保存屏幕快照:browser.save_screenshot('baidu.png')
3.Chrome handless
Chrome-headless 模式, Google 針對 Chrome 瀏覽器 59版 新增加的一種模式,可以讓你不打開UI界面的情況下
使用 Chrome 瀏覽器,所以運行效果與 Chrome 保持完美一致。
1.系統要求: Chrome Unix\Linux 系統需要 chrome >= 59 Windows 系統需要 chrome >= 60 Python3.6 Selenium==3.4.* ChromeDriver==2.31
2.配置: from selenium import webdriver from selenium.webdriver.chrome.options import Options 作業:京東 from selenium.webdriver.chrome.options import Options chrome_options = Options() chrome_options.add_argument('‐‐headless') chrome_options.add_argument('‐‐disable‐gpu') path = r'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe' chrome_options.binary_location = path browser = webdriver.Chrome(chrome_options=chrome_options) browser.get('http://www.baidu.com/')
3.配置封裝: from selenium import webdriver #這個是瀏覽器自帶的 不需要我們再做額外的操作 from selenium.webdriver.chrome.options import Options def share_browser(): #初始化 chrome_options = Options() chrome_options.add_argument('‐‐headless') chrome_options.add_argument('‐‐disable‐gpu') #瀏覽器的安裝路徑 打開文件位置 #這個路徑是你谷歌瀏覽器的路徑 path = r'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe' chrome_options.binary_location = path browser = webdriver.Chrome(chrome_options=chrome_options) return browser 封裝調用: from handless import share_browser browser = share_browser() browser.get('http://www.baidu.com/') browser.save_screenshot('handless1.png')