06.15 第四章:Python Selenium 自動化測試之webDeiver

第四章:Python Selenium 自動化測試之webDeiver

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瀏覽器,打開百度首頁,關閉瀏覽器

代碼如下:

第四章:Python Selenium 自動化測試之webDeiver

瀏覽器相關操作

窗口最大化

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')


分享到:


相關文章: