本篇文章給大家分享的是有關(guān)如何正確的使用Selenium,小編覺得挺實用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
在花都等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站設(shè)計、做網(wǎng)站 網(wǎng)站設(shè)計制作按需網(wǎng)站制作,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站建設(shè),全網(wǎng)整合營銷推廣,外貿(mào)網(wǎng)站建設(shè),花都網(wǎng)站建設(shè)費用合理。Selenium是一個用于Web應(yīng)用程序測試的工具。Selenium測試直接運行在瀏覽器中,就像真正的用戶在操作一樣。支持的瀏覽器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。這個工具的主要功能包括:測試與瀏覽器的兼容性——測試你的應(yīng)用程序看是否能夠很好得工作在不同瀏覽器和操作系統(tǒng)之上。測試系統(tǒng)功能——創(chuàng)建回歸測試檢驗軟件功能和用戶需求。支持自動錄制動作和自動生成 .Net、Java、Perl等不同語言的測試腳本。
安裝
pip install selenium
安裝驅(qū)動程序
下面介紹幾種主流瀏覽器的驅(qū)動程序下載地址:
瀏覽器 | 下載地址 |
---|---|
Chrome | https://sites.google.com/a/chromium.org/chromedriver/downloads |
Edge | https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/ |
Firefox | https://github.com/mozilla/geckodriver/releases |
Safari | https://webkit.org/blog/6900/webdriver-support-in-safari-10/ |
下面以windows環(huán)境,Chrome瀏覽器為例,我下載的是2.36版本的驅(qū)動chromedriver_win32.zip,解壓得到一個chromedriver.exe文件,將其放置在瀏覽器的安裝目錄之下,如圖所示:
selenium的簡單用法
如果你已經(jīng)按照上面安裝了selenium,并且安裝了驅(qū)動程序,下面來簡單的玩一玩selenium:
from selenium.webdriver import Chrome from selenium.webdriver.common.keys import Keys # 創(chuàng)建Chrome WebDriver實例,此路徑為驅(qū)動程序的路徑 driver = Chrome("C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe") # 加載URL網(wǎng)頁 driver.get("http://www.baidu.com/") # 判斷標題中是否包含該字符串 assert "百度一下" in driver.title # 查找id=kw的節(jié)點 element = driver.find_element_by_id("kw") # 清空原有的輸入,輸入python進行搜索 element.clear() element.send_keys("python") element.send_keys(Keys.RETURN) # 判斷是否有結(jié)果返回 assert "No results found." not in driver.page_source # 關(guān)閉當(dāng)前標簽,也可以使用quit()關(guān)閉瀏覽器 driver.close()
上面的栗子,簡單介紹了一下selenium的用法,接下來將結(jié)合selenium與unittest來編寫測試:
import unittest from selenium.webdriver import Chrome from selenium.webdriver.common.keys import Keys # 繼承至TestCase,表示這是一個測試用例類 class BaiduCase(unittest.TestCase): # 初始化的一部分 def setUp(self): self.driver = Chrome("C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe") # 測試用例方法,名稱可以自定義,方法名稱始終以test開頭 def test_serch(self): self.driver.get("https://www.baidu.com/") assert "百度一下" in self.driver.title element = self.driver.find_element_by_id("kw") element.clear() element.send_keys("python") element.send_keys(Keys.RETURN) assert "No results found." not in self.driver.page_source # 在執(zhí)行完各種測試用例方法之后會執(zhí)行,為一個清理操作 def tearDown(self): self.driver.close() if __name__ == "__main__": unittest.main()
執(zhí)行上面的代碼,將會返回如下信息:
.
----------------------------------------------------------------------
Ran 1 test in 2.914s
OK
值得注意的是,如果沒有配置驅(qū)動,或者路徑寫錯了,將會出現(xiàn)WebDriverException錯誤
與網(wǎng)頁互動
與一個網(wǎng)頁進行的真正的交互,具體的說,與網(wǎng)頁的HTML元素進行交互。如果需要與之交互,那么久必須要查找到HTML的元素。WebDriver提供了多種查找HTML元素的方法。例如,給定一個元素為:
<input type="text" name="passwd" id="passwd-id"/>
我們可以使用下面任意方法查找到它:
element = driver.find_element_by_id("passwd-id") element = driver.find_element_by_name("passwd") element = driver.find_element_by_xpath("//input[@id='passwd-id']")
值的注意的是,使用xpath進行匹配時,如果有多個元素與查詢匹配,只會返回第一個元素。如果什么都找不到,將會返回NoSuchElementException錯誤。當(dāng)你查找到一個元素時,你可以用它做什么?首先你可能會想到在文本標簽中輸入一些文本:
element.send_keys("python")
也可以使用Keys來模擬一些箭頭鍵:
from selenium.webdriver.common.keys import Keys element.send_keys(Keys.ARROW_DOWN)
你也可以使用clear()
方法來清除文本標簽里的內(nèi)容:
element.clear()
切換下拉菜單的狀態(tài),我們可以依次循環(huán)選擇每個選項并依次選擇每個選項:
element = driver.find_element_by_xpath("//select[@name='name']") all_options = element.find_elements_by_tag_name("option") for option in all_options: option.click()
正如你所看到的,這并不是處理select元素的最有效的方式。WebDriver類包還包括一個名為Select的類,它提供了與這些類交互的有用的方法:
from selenium.webdriver.support.ui import Select element = driver.find_element_by_xpath("//select[@name='name']") select = Select(element) select.select_by_index(index) select.select_by_visible_text("text") select.select_by_value("value")
WebDriver還提供取消選擇所有選項的功能:
element = driver.find_element_by_id('id') select = Select(element) select.deselect_all()
Select還具有獲取所有已經(jīng)選中的標簽的方法:
element = driver.find_element_by_id('id') select = Select(element) all_options = select.all_selected_options
獲取所有可用的選項:
options = select.options
完成后表格填寫后,您可以需要提交,一種方法是找到submit按鈕并點擊它:
driver.find_element_by_id('submit').click()
WebDriver在每個元素上都有一個submit的便利方法,如果你在一個表單的元素上調(diào)用它,Webdriver會遍歷DOM直到包含表單,然后調(diào)用它:
element.submit()
WebDriver還提供了前進與后退的操作:
driver.forward() driver.back()
WebDriver還可以進行設(shè)置Cookies和獲取Cookies:
driver.get('https://www.baidu.com/') driver.add_cookie({"name":"foo","value":"laozhang"}) print(driver.get_cookies()
以上就是如何正確的使用Selenium,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降摹OM隳芡ㄟ^這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計公司行業(yè)資訊頻道。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
網(wǎng)頁名稱:如何正確的使用Selenium-創(chuàng)新互聯(lián)
當(dāng)前網(wǎng)址:http://muchs.cn/article26/dhojcg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊、網(wǎng)站改版、網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)、手機網(wǎng)站建設(shè)、建站公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容