
webDriver
webDriver概念:Webdriver是一種用於Web應用程序的自動測試工具,它提供了一套友好的API,與Selenium-RC相比,Webdriver 的API更容易理解和使用,其可讀性和可維護性也大大提高。Webdriver完全就是一套類庫,不依賴於任何測試框架,除了必要的瀏覽器驅動,不需要啟動其他進程或安裝其他程序。webDriver支持的瀏覽器包括Firefox、IE、Opera、Chrome 、safari。webDriver支持的編程語言包括:java、C#、PHP、Python、Perl、Ruby
selenium的安裝(前提是安裝好Python)
安裝selenium的相關操作:
打開dos控制檯:輸入 pip install selenium命令,回車等它安裝好就可以
查看selenium版本號命令:pip show selenium
卸載selenium庫命令:pip uninstall selenium
安裝好selenium後需要下載相應瀏覽器的驅動程序,下載好驅動後,不需要安裝,解壓後添加環境變量即可使用
附selenium相關內容的下載鏈接(包括驅動和selenium):
https://www.seleniumhq.org/download/
注意:瀏覽器位數的版本和驅動版本要一致! 如果是32bit瀏覽器而Driver是64bit則會導致腳本運行失敗!
第一個自動化腳本
實現如下操作:啟動IE瀏覽器,打開百度首頁,關閉瀏覽器
代碼如下:

瀏覽器相關操作
窗口最大化
driver.maximize_window()
窗口最小化
driver.minimize_window()
設置瀏覽器窗口大小
driver.set_window_size(width, height)
頁面的前進
driver.forward()
頁面的後退
driver.back()
頁面刷新
driver.refresh()
元素的定位(自動化的核心之一)
使用id定位
driver.find_element_by_id('kw')
使用name定位
driver.find_element_by_name('kw')
使用tag_name定位
driver.find_element_by_tag_name('input')
假設有多個input標籤,我們可以通過索引來定位到我們想要的標籤如下:driver.find_element_by_tag_name('input')[0]
使用class_name定位
driver.find_element_by_class_name('search_btn')
這裡補一下findElements和findElement的不同:findElements是查找頁面上所有符合條件的元素,返回的是一個列表list,不能直接點擊,findElement才是準確定位到指定元素,才能進行點擊操作
使用link_text(超鏈接文字)定位
定位超鏈接文字全部文字內容:driver.find_element_by_link_text('程序開發')
定位超鏈接文字部分內容:driver.find_element_by_partial_link_text('程序')
使用Xpath定位
方式一:絕對定位不推薦使用(腳本不好維護)
driver.find_element_by_xpath('/html/body/div[2]/div[1]/form]/input[@id="su"]')
方式二:相對定位
driver.find_element_by_xpath('//*[@id="form"]')
相對路勁相關解釋://表示當前頁面;*表示任意標籤,你也可以指定標籤;@後為屬性
使用CSS定位(推薦使用CSS定位,不推薦使用Xpath定位)
driver.find_element_by_css_selector(css_selector)
#值:通過id定位
.class:通過class定位
[屬性='值']:通過屬性定位
層級>層級:通過層級定位
下拉菜單元素定位(利用select類來進行定位)
select=select(driver.find_element_by_css_selector("[name='CookieData']"))
select.select_by_index(0)#通過索引定位
select.select_by_visible__text("留一年")#通過選項文字定位
select.select_by_value('1')#通過value值來定位
frame嵌套頁面元素定位(嵌套頁面就是在網頁中又嵌套了一個子網頁)
driver.switch_to.frame('search')
閱讀更多 軟件測試BlackCoffee 的文章