摘要:當你使用時,你必須注意,如果匹配超過一個元素,只返回第一個元素。操作打開一個頁面現在設置,這個在域名根目錄下生效現在獲取所有當前下可獲得的查找元素以上是相關的基礎內容,下一期更新使用頁面對象模式的示例一起越來越好
今天想跟大家分享的是:
關于selenium的自動化測試一些基礎的東西
安裝環境
1.Python環境
安裝完成后通過Windows命令提示符CMD輸入“python”,查看是否安裝成功
2.安裝setuptools與pip
setuptools是PEAK(Python enterprise Application Kit)的一個副項目,是python的distutilsde的增強工具,可以更方便創建和發布python包,特別是對其他包有依賴的情況;
pip是一個安裝和管理python包的工具,通過pip來安裝python包將變得很簡單,省去了繁瑣的過程,pip的安裝依賴于setuptools,安裝pip之前需要先安裝setuptools;
3.下載selenium包
pip install selenium
4.下載瀏覽器驅動
火狐和谷歌各有各的驅動
下載鏈接:https://www.seleniumhq.org/do...
簡單示例
示例名稱: test_python_org_search.py
import unittest #引入 unittest 模塊是基于JAVA JUnit的Python內置的模塊。 該模塊提供了一個框架去組織測試用例 from selenium import webdriver #selenium.webdriver 模塊提供了所有WebDriver的實現 from selenium.webdriver.common.keys import Keys # Keys 類提供所有的鍵盤按鍵操作 class PythonOrgSearch(unittest.TestCase): #測試類繼承自 unittest.TestCase. 繼承 TestCase 類是告訴 unittest 模塊該類是一個測試用例 def setUp(self): self.driver = webdriver.Firefox() #SetUp 方法是初始化的一部分,創建了一個Firefox WebDriver的一個實例 def test_search_in_python_org(self): driver = self.driver driver.get("http://www.python.org") #driver.get 方法將會根據方法中給出的URL地址打開該網站 self.assertIn("Python", driver.title) #使用assert斷言的方法判斷在頁面標題中是否包含 “Python” elem = driver.find_element_by_name("q") #找到name為q的DOM節點 elem.send_keys("pycon") #在name為q的DOM節點中,輸入pycon elem.send_keys(Keys.RETURN) #按enter鍵 assert "No results found." not in driver.page_source def tearDown(self): self.driver.close() #tearDown 方法會在每一個測試方法執行之后被執行。 該方法可以用來做一些清掃工作,比如關閉瀏覽器。 當然你也可以調用 quit 方法代替`close`方法 #區別:quit 將關閉整個瀏覽器,而`close`只會關閉一個標簽頁 if __name__ == "__main__": unittest.main() #入口函數
可直接在shell中運行:python test_python_org_search.py
常用方法講解
1.打開一個頁面
driver.get("http://www.baidu.com")
WebDriver 將等待,直到頁面完全加載完畢(其實是等到 onload 方法執行完畢), 然后返回繼續執行你的腳本。 值得注意的是,如果你的頁面使用了大量的Ajax加載, WebDriver可能不知道什么時候頁面已經完全加載。
2.與頁面交互
WebDriver 提供了大量的方法幫助你去查找元素,例如
可通過以下方法查找:
element = driver.find_element_by_id("passwd-id") element = driver.find_element_by_name("passwd") element = driver.find_element_by_xpath("http://input[@id="passwd-id"]")
你還可以通過鏈接的文本查找他,需要注意的是,這個文本必須完全匹配。 當你使用XPATH時,你必須注意,如果匹配超過一個元素,只返回第一個元素。 如果上面也沒找到,將會拋出 NoSuchElementException異常。
執行一些操作,例如
在文本框中輸入一些內容:element.send_keys("some text")
清除內容:element.clear()
選擇下拉框:WebDriver的支持類有一個叫做 Select的類
from selenium.webdriver.support.ui import Select
select.select_by_index(index)根據option的順序
select.select_by_visible_text("text")根據文本
select.select_by_value(value)根據它的value值
取消選擇:select.deselect_all()
提交選擇:element.submit()
3.拖放
element = driver.find_element_by_name("source") target = driver.find_element_by_name("target") from selenium.webdriver import ActionChains action_chains = ActionChains(driver) action_chains.drag_and_drop(element, target).perform()
4.彈出對話框處理方式
alert = driver.switch_to_alert()
switch_to_alert() #定位彈出對話
text() #獲取對話框文本值
accept() #相當于點擊"確認"
dismiss() #相當于點擊"取消"
send_keys() # 輸入值,這個alert和confirm沒有輸入對話框,所以這里就不能用了,所以這里只能使用在prompt這里。
5.操作cookie
打開一個頁面 driver.get(“http://www.example.com”)
現在設置Cookies,這個cookie在域名根目錄下(”/”)生效 cookie = {‘name’ : ‘foo’, ‘value’ : ‘bar’} driver.add_cookie(cookie)
現在獲取所有當前URL下可獲得的Cookies driver.get_cookies()
6.查找元素
find_element_by_id
find_element_by_name
find_element_by_xpath
find_element_by_link_text
find_element_by_partial_link_text
find_element_by_tag_name
find_element_by_class_name
find_element_by_css_selector
以上是selenium相關的基礎內容,下一期更新使用頁面對象模式的示例,
一起越來越好.
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/42906.html
摘要:自動化測試工具可能是網頁應用中最流行的開源自動化測試框架。證書商業是一個開源的自動化測試框架,它實現了關鍵字測試驅動來實現測試驅動開發。 showImg(https://segmentfault.com/img/bVYz7D?w=1200&h=627); 簡評:軟件開發實踐一直以來都在變化,工具和技術也是如此。這些改變都是為了提高生產率,質量,讓客戶滿意,縮短交付時間,以及交付成功的產...
摘要:傳統的無法執行頁面中的瀏覽器腳本,并且在抓取一些對爬蟲有限制的網頁時,往往要設定詳細的來突破限制,編寫起來較為復雜。直接使用瀏覽器運行,像真正的用戶在操作。支持以下方式進行選擇元素各種庫對情況的檢測方法 傳統的 cURL 無法執行頁面中的瀏覽器腳本,并且在抓取一些對爬蟲有限制的網頁時,往往要設定詳細的 http header 來突破限制,編寫起來較為復雜。 Selenium簡介: ...
摘要:了解模式指的是不需要用戶界面的瀏覽器,這種瀏覽器在自動化測試和爬蟲領域有著廣泛的應用。實踐使用瀏覽器的模式進行自動化測試,你需要先滿足以下前提運行環境或者或者最新版已加入萬事俱備,廢話不多說我們直接上演示代碼。 了解HEADLESS模式 HEADLESS BROWSER 指的是不需要用戶界面的瀏覽器,這種瀏覽器在自動化測試和爬蟲領域有著廣泛的應用。 例如你想在網頁上運行一些測試,從網頁...
摘要:本身項目也是使用來測試的。一個簡易的模式的配置如下的分為四個部分在實例上以開頭的行為驅動測試風格的接口,及以上版本可用。例如以開頭的兩套相同的方法庫,區別是如果斷言失敗則退出整個測試用例所有步,則打印后繼續進行。 E2E測試 E2E(end to end)測試是指端到端測試又叫功能測試,站在用戶視角,使用各種功能、各種交互,是用戶的真實使用場景的仿真。在產品高速迭代的現在,有個自動化測...
摘要:在這里真心感謝一直在支持我的那幾個粉絲,謝謝你們的持續關注點贊。果然,第三個包也是按的步差來的,而為零不變,也不變。函數里面的話就是個循環咯,當條件不滿足時就一直加,知道條件滿足為止。我每天都會抽時間給我的粉絲解答,給與一些學習資源。 目錄 前言 準備工作 分析(x0) 分析(x1) 分析(...
閱讀 2312·2021-11-17 09:33
閱讀 843·2021-10-13 09:40
閱讀 573·2019-08-30 15:54
閱讀 778·2019-08-29 15:38
閱讀 2417·2019-08-28 18:15
閱讀 2475·2019-08-26 13:38
閱讀 1841·2019-08-26 13:36
閱讀 2129·2019-08-26 11:36