Selenium


 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)

 

41: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("新聞")

 

42:訪問元素信息
獲取元素屬性    
.get_attribute('class')        
獲取元素文本    
.text        
獲取標簽名    
.tag_name

 

43:交互
點擊: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')

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM