版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
RobotFramework+Selenium2/WebDriver測試技術培訓@吳穹AdamRobotFramework+Selenium2/WebDriver測試技術培訓@吳穹Adam?2011 AgileanCopyrightReserved2基本概念Agenda?2011 AgileanCopyrightReserved2基本概念Agenda?定義一種統(tǒng)一的方式來書寫和組織測試用例(測試步驟,測試數(shù)據(jù)與期待返回值);??定義一種統(tǒng)一的方式來書寫和組織測試用例(測試步驟,測試數(shù)據(jù)與期待返回值);????2011 AgileanCopyrightReserved3測試框架的職責?2011 AgileanCopyrightReserved4Robot?2011 AgileanCopyrightReserved4RobotFramework方案概要????????易于使用,采用表格式語法,統(tǒng)一測試用例格式;????????易于使用,采用表格式語法,統(tǒng)一測試用例格式;支持變量;支持創(chuàng)建基于數(shù)據(jù)驅(qū)動的測試用例。結(jié)果報告和日志采用HTML格式,易于閱讀;平臺、應用無關;功能全面,支持WEB測試(Selenium)、JavaGUI啟動線程、終端、SSH等;API,用戶可以自定義的基于Python或者Java的測試庫;XML的輸出文件;易于與版本管理集成;????2011 AgileanCopyrightReserved5RobotFramework的特性DBBuiltin?DBBuiltin?2011 AgileanCopyrightReserved6RobotFramework?基本概念?2011 AgileanCopyrightReserved7安裝Agenda?基本概念?2011 AgileanCopyrightReserved7安裝Agenda?運行python-2.7.1.msi)加入PathPython2.8-win32-unicode--py27.exe,robotframework-2.6.3.tar????運行python-2.7.1.msi)加入PathPython2.8-win32-unicode--py27.exe,robotframework-2.6.3.tar???解壓到本地用管理員帳戶打開一個cmd在cmd中執(zhí)行,pythonsetup.pyinstallrobotframework-ride-0.39.1.win32.exerobotframework-selenium2library-0.5.2.win32.exe替換[PythonDir]\Lib\site-packages\Selenium2Library的內(nèi)容執(zhí)行[PythonDir]\Scripts\ride.py??2011 AgileanCopyrightReserved8安裝?在[PythonDir]\Lib\site-packages\robot\utils下的encoding.py文件中,找到def_get_output_encoding():原來的編碼是’cp437’cp936’(簡體中將其改成’文,gbk)。?2011 Agilean?在[PythonDir]\Lib\site-packages\robot\utils下的encoding.py文件中,找到def_get_output_encoding():原來的編碼是’cp437’cp936’(簡體中將其改成’文,gbk)。?2011 AgileanCopyrightReserved9設置中文支持?需要以管理員身份運行IE,將所有四個區(qū)域的“啟用保護模式”選項清除,否則WebDriver會報這個錯誤?2011 AgileanCopyrightReserved?需要以管理員身份運行IE,將所有四個區(qū)域的“啟用保護模式”選項清除,否則WebDriver會報這個錯誤?2011 AgileanCopyrightReserved10IE8設置??基本概念安裝?2011 AgileanCopyrightReserved11??基本概念安裝?2011 AgileanCopyrightReserved11創(chuàng)建測試用例Agenda???測試項目可以目錄或文件存儲格式可以用TXT,TSV或HTML???測試項目可以目錄或文件存儲格式可以用TXT,TSV或HTMLTXT,這樣便于管理?2011 AgileanCopyrightReserved12創(chuàng)建測試項目?測試套也可以選擇是文件還是目錄?2011 AgileanCopyrightReserved13創(chuàng)建測試套?測試套也可以選擇是文件還是目錄?2011 AgileanCopyrightReserved13創(chuàng)建測試套?2011 AgileanCopyrightReserved14創(chuàng)建測試用例?2011 AgileanCopyrightReserved14創(chuàng)建測試用例?2011 AgileanCopyrightReserved15?2011 AgileanCopyrightReserved15關系總結(jié)?測試庫提供針對特定應用的關鍵詞?2011 AgileanCopyrightReserved?測試庫提供針對特定應用的關鍵詞?2011 AgileanCopyrightReserved16添加測試庫??資源提供定制公用關鍵詞的能力注意:資源也需要引用用到的Library?2011 AgileanCopyrightReserved17添加資源??資源提供定制公用關鍵詞的能力注意:資源也需要引用用到的Library?2011 AgileanCopyrightReserved17添加資源?2011 AgileanCopyrightReserved18關系總結(jié)?2011 AgileanCopyrightReserved18關系總結(jié)?2011 AgileanCopyrightReserved19增加自定義關鍵詞?2011 AgileanCopyrightReserved19增加自定義關鍵詞?2011 AgileanCopyrightReserved20增加自定義關鍵詞?2011 AgileanCopyrightReserved20增加自定義關鍵詞?F5可以搜索關鍵詞紅色表明需要輸入?yún)?shù)?2011 AgileanCopyrightReserved21增加自定義關鍵詞?F5可以搜索關鍵詞紅色表明需要輸入?yún)?shù)?2011 AgileanCopyrightReserved21增加自定義關鍵詞?測試用例用到的資源,需要在測試套里面直接引用?2011 AgileanCopyrightReserved22?測試用例用到的資源,需要在測試套里面直接引用?2011 AgileanCopyrightReserved22在測試用例里面引用資源??F5可以查找關鍵詞匹配的關鍵詞會顯示為藍色?2011 Agilean??F5可以查找關鍵詞匹配的關鍵詞會顯示為藍色?2011 AgileanCopyrightReserved23引用自定義關鍵詞???基本概念安裝創(chuàng)建測試用例?2011 Agilean???基本概念安裝創(chuàng)建測試用例?2011 AgileanCopyrightReserved24執(zhí)行測試Agenda?2011 AgileanCopyrightReserved?2011 AgileanCopyrightReserved25執(zhí)行測試??測試用例可以標記多個Tag可以按Tag來執(zhí)行或跳過用例?2011 AgileanCopyrightReserved??測試用例可以標記多個Tag可以按Tag來執(zhí)行或跳過用例?2011 AgileanCopyrightReserved26按Tag執(zhí)行??測試日志按樹形組織可自動提供錯誤步驟的屏幕截圖?2011 Agilean??測試日志按樹形組織可自動提供錯誤步驟的屏幕截圖?2011 AgileanCopyrightReserved27測試日志?拷屏|filename=None將頁面內(nèi)容加入Log?LogLogLogLocationSource|loglevel=INFO?拷屏|filename=None將頁面內(nèi)容加入Log?LogLogLogLocationSource|loglevel=INFOTitle?Log特定信息(BuiltInLibrary)?Log變量(BuiltInLibrary)?2011 AgileanCopyrightReserved28其他可用調(diào)試手段?底色表示成功與失敗?2011 AgileanCopyrightReserved29?底色表示成功與失敗?2011 AgileanCopyrightReserved29測試報告??建立測試用例查看測試報告?2011 Agilean??建立測試用例查看測試報告?2011 AgileanCopyrightReserved30練習一????基本概念安裝創(chuàng)建測試用例執(zhí)行測試?????基本概念安裝創(chuàng)建測試用例執(zhí)行測試?2011 AgileanCopyrightReserved31使用Selenium2LibraryAgenda?SeleniumLibrary將WebDriver與RobotFramework連接起來提供了非常多的內(nèi)置關鍵詞可以使用F5或以下鏈接來學習???2011 Agilean?SeleniumLibrary將WebDriver與RobotFramework連接起來提供了非常多的內(nèi)置關鍵詞可以使用F5或以下鏈接來學習???2011 AgileanCopyrightReserved32內(nèi)置關鍵詞?Selenium2Lib提供了與瀏覽器交互的關鍵詞:BrowserMaximizeBrowserGoToGoBackReload?Selenium2Lib提供了與瀏覽器交互的關鍵詞:BrowserMaximizeBrowserGoToGoBackReloadPageWindowCloseCloseCloseWindowBrowserAllBrowsers?2011 AgileanCopyrightReserved33瀏覽器操作?點擊ClickClickClickClickButton|locatorElement|locatorImage|locatorLink|?點擊ClickClickClickClickButton|locatorElement|locatorImage|locatorLink|locatorElement|locatorIE中,Click不起作用,可以用如下命令來替代?PressKey|<id>|\\13或\\10?2011 AgileanCopyrightReserved34常用關鍵詞?Locator或name來用定位界面元素XPath=或Dom=來開頭來定位,強烈建議強制要求開發(fā)為所有需要交互的界面元素設定id,所以,locator最好以id=,name=,identifier=??Locator或name來用定位界面元素XPath=或Dom=來開頭來定位,強烈建議強制要求開發(fā)為所有需要交互的界面元素設定id,所以,locator最好以id=,name=,identifier=??2011 AgileanCopyrightReserved35定位元素?也可以應用AssignIdTo?也可以應用AssignIdToElement關鍵詞來為沒有ID的元素指定一個ID?2011 AgileanCopyrightReserved36定位元素?有時,需要先進入一個frame或iframe再定位一個元素,這樣效率更高,可以使用如下兩個關鍵詞或iframeSelectFrame|?有時,需要先進入一個frame或iframe再定位一個元素,這樣效率更高,可以使用如下兩個關鍵詞或iframeSelectFrame|locatorframe或iframe?UnselectFrame?2011 AgileanCopyrightReserved37定位元素?可見性問題要求交互的元素必須是可見的,其判定邏輯如下:???????可見性問題要求交互的元素必須是可見的,其判定邏輯如下:???????Select是否可見?;Area,判斷包含它的Map是否可見?對于Map,判斷MapImage是否可見?hiddeninput不可見;NoScript不可見;hiddenvisibility不可見;displayed=‘none’,則元素不可見;??2011 AgileanCopyrightReserved38定位元素?可見性問題IE有一個缺陷使得即便display=“none”的元素依然可見,/explorer/ienondisappear?可見性問題IE有一個缺陷使得即便display=“none”的元素依然可見,/explorer/ienondisappearcontentbugPIE/index.htm?display=‘none’或任何祖先元素的display=‘none’,則元素不可見;?2011 AgileanCopyrightReserved39定位元素?輸入InputPassword|locator|textInputText|?輸入InputPassword|locator|textInputText|locator|text更新?PressKey|<id>|\\13或\\10?2011 AgileanCopyrightReserved40常用關鍵詞?按鍵PressKey|locator|key例子PressKey|text_field?按鍵PressKey|locator|key例子PressKey|text_fieldPressKey|login_button特殊編碼||q|\\13|#ASCIIcodefor????????43:44:45:56:57:59:61:Keys.ADD,Keys.SUBTRACT,Keys.DECIMAL,Keys.DIVIDE,Keys.EQUALS,?????????0:8:9:Keys.NULL,Keys.BACK_SPACE,Keys.TAB,10:13:24:27:32:42:Keys.RETURN,Keys.ENTER,Keys.CANCEL,Keys.ESCAPE,Keys.SPACE,127:Keys.DELETE?2011 AgileanCopyrightReserved41常用關鍵詞?可以使用FireFoxFirebug或IE8來輔助定位?2011 AgileanCopyrightReserved42?可以使用FireFoxFirebug或IE8來輔助定位?2011 AgileanCopyrightReserved42定位元素?創(chuàng)建更多關鍵詞?2011 AgileanCopyrightReserved43?創(chuàng)建更多關鍵詞?2011 AgileanCopyrightReserved43更新例子?擴展測試用例?2011 AgileanCopyrightReserved44?擴展測試用例?2011 AgileanCopyrightReserved44更新例子?驗證頁面是否包含相應結(jié)果Page????????PagePage?驗證頁面是否包含相應結(jié)果Page????????PagePagePagePagePagePagePagePageShould(Not)ContainShould(Not)ContainShould(Not)ContainButtonElementImageLinkListRadioButtonTextfield&Title???LocationShouldLocationShouldTitleShouldBeBeContain?2011 AgileanCopyrightReserved45檢查結(jié)果?驗證頁面是否包含相應結(jié)果Text????CurrentFrameContainsPageShould?驗證頁面是否包含相應結(jié)果Text????CurrentFrameContainsPageShouldContainPageShouldNotContainTextfieldValueShouldBe??????ElementElementElementElementElementElementShouldShouldShouldShouldShouldBeBeBeDisabledEnabledVisibleContainNotBeVisibleTextShouldBe?2011 AgileanCopyrightReserved46檢查結(jié)果?驗證頁面是否包含相應結(jié)果ListListSelectionShouldBeListShouldHave?驗證頁面是否包含相應結(jié)果ListListSelectionShouldBeListShouldHaveNoSelectionsCheckboxCheckboxShouldBeSelectedCheckboxShouldNotRadioButtonBeSelected??RadioRadioButtonButtonShouldShouldBeSetNotBeToSelected?2011 AgileanCopyrightReserved47檢查結(jié)果?驗證頁面是否包含相應結(jié)果–Table???????TableTableTableTable?驗證頁面是否包含相應結(jié)果–Table???????TableTableTableTableTableTableCellShouldContainColumnFooterHeaderShouldContainContainContainRowShouldContainShouldContainTextfieldShouldContain–Xpath?XpathShouldMatchXTimes?2011 AgileanCopyrightReserved48檢查結(jié)果??默認情況下,Selenium2會自動等待頁面加載完成對于頁面AJAX可以使用如下等待頁面的關鍵詞:WaitWaitWaitForCondition|??默認情況下,Selenium2會自動等待頁面加載完成對于頁面AJAX可以使用如下等待頁面的關鍵詞:WaitWaitWaitForCondition|condition|timeout=None|error=NoneUntilPageContains|text|timeout=None|error=NoneUntilPageContainsElement|locator|timeout?一種調(diào)試時可以使用,但是不應該留下來的SleepxSleep關鍵詞是RobotFrameworkBuiltInLibrary提供的,In.html?r=2.6.1?2011 AgileanCopyrightReserved49等待頁面加載?Selenium2Lib提供了和其他界面元素交互的關鍵詞:–Element???Focus聚焦Simulate模擬時間觸發(fā)OpenContextMenu–List??Selenium2Lib提供了和其他界面元素交互的關鍵詞:–Element???Focus聚焦Simulate模擬時間觸發(fā)OpenContextMenu–List???SelectAllFromListSelectFromListUnselectFromListCheckboxSelectCheckboxUnselectCheckboxRadioButtonSelectRadioButtonFormSubmitForm ?ChooseFile(ForFileUpload) ?2011 AgileanCopyrightReserved50和其他界面元素交互?更新測試用例?2011 AgileanCopyrightReserved51?更新測試用例?2011 AgileanCopyrightReserved51練習二?????基本概念安裝執(zhí)行測試使用SeleniumLibrary?????基本概念安裝執(zhí)行測試使用SeleniumLibrary?2011 AgileanCopyrightReserved52數(shù)據(jù)驅(qū)動的測試與測試用例的架構Agenda?要做到流程和數(shù)據(jù)的分離id不算數(shù)據(jù),不應分離?2011 Agilean?要做到流程和數(shù)據(jù)的分離id不算數(shù)據(jù),不應分離?2011 AgileanCopyrightReserved53?增加一個新的測試用例這樣好嗎??2011 AgileanCopyrightReserved54更新例子?增加一個新的測試用例這樣好嗎??2011 AgileanCopyrightReserved54更新例子??要做到流程和數(shù)據(jù)的分離通過不斷抽象,消除冗余?2011 Agilean??要做到流程和數(shù)據(jù)的分離通過不斷抽象,消除冗余?2011 AgileanCopyrightReserved55??要做到流程和數(shù)據(jù)的分離通過不斷抽象,消除冗余?2011 Agilean??要做到流程和數(shù)據(jù)的分離通過不斷抽象,消除冗余?2011 AgileanCopyrightReserved56???要做到流程和數(shù)據(jù)的分離通過不斷抽象,消除冗余避免復雜邏輯????要做到流程和數(shù)據(jù)的分離通過不斷抽象,消除冗余避免復雜邏輯?2011 AgileanCopyrightReserved57???要做到流程和數(shù)據(jù)的分離通過不斷抽象,消除冗余避免復雜邏輯????要做到流程和數(shù)據(jù)的分離通過不斷抽象,消除冗余避免復雜邏輯?2011 AgileanCopyrightReserved58???要做到流程和數(shù)據(jù)的分離通過不斷抽象,消除冗余測試用例應盡量簡單易讀,避免復雜邏輯問題:“登錄”Keyword應該在這里嗎??2011 Agilean???要做到流程和數(shù)據(jù)的分離通過不斷抽象,消除冗余測試用例應盡量簡單易讀,避免復雜邏輯問題:“登錄”Keyword應該在這里嗎??2011 AgileanCopyrightReserved59????要做到流程和數(shù)據(jù)的分離通過不斷抽象,消除冗余建立測試用例分層架構,并堅守????要做到流程和數(shù)據(jù)的分離通過不斷抽象,消除冗余建立測試用例分層架構,并堅守?2011 AgileanCopyrightReserved60測試流程步驟=界面交互細節(jié)?2011 AgileanCopyrightReserved61測試流程構件=測試流程步驟的排列測試流程模板=測試流程構件的排列測試用例測試流程步驟=界面交互細節(jié)?2011 AgileanCopyrightReserved61測試流程構件=測試流程步驟的排列測試流程模板=測試流程構件的排列測試用例=+測試數(shù)據(jù)測試用例的層次架構(實例)?分層測試用例架構?2011 AgileanCopyrightReserved62?分層測試用例架構?2011 AgileanCopyrightReserved62練習三??????基本概念安裝執(zhí)行測試使用SeleniumLibrary??????基本概念安裝執(zhí)行測試使用SeleniumLibrary數(shù)據(jù)驅(qū)動的測試與測試用例的架構?2011 AgileanCopyrightReserved63使用變量Agenda?使用變量來實現(xiàn)測試目標可變?2011 AgileanCopyrightReserved64使用變量?使用變量來實現(xiàn)測試目標可變?2011 AgileanCopyrightReserved64使用變量?使用變量來實現(xiàn)測試目標可變?2011 AgileanCopyrightReserved65?使用變量來實現(xiàn)測試目標可變?2011 AgileanCopyrightReserved65使用變量?使用變量來實現(xiàn)測試目標可變?2011 AgileanCopyrightReserved66?使用變量來實現(xiàn)測試目標可變?2011 AgileanCopyrightReserved66使用變量?可以使用變量來獲得界面返回值,用于驗證Test級別,因為測試用例最好是相互獨立的?2011 AgileanCopyrightReserved67?可以使用變量來獲得界面返回值,用于驗證Test級別,因為測試用例最好是相互獨立的?2011 AgileanCopyrightReserved67使用變量?相關關鍵詞有:Page????GetGetGetGetTitleSource?相關關鍵詞有:Page????GetGetGetGetTitleSourceXpathCount???GetGetGetElementAttributeValueText(AddedByAdamWu)LinkGetAllLinks?2011 AgileanCopyrightReserved68獲取頁面信息?相關關鍵詞有:–TableGetListTableCell?????相關關鍵詞有:–TableGetListTableCell?????GetGetGetGetGetListItemsSelectedListListListListLabelLabelsValueValues?2011 AgileanCopyrightReserved69獲取頁面信息???????基本概念安裝執(zhí)行測試使用Selenium???????基本概念安裝執(zhí)行測試使用SeleniumLibrary數(shù)據(jù)驅(qū)動的測試與測試用例的架構使用變量?2011 AgileanCopyrightReserved70設置TimeoutAgenda?Suite和Test都可以設定Timeout,這限定了測試用例的最長執(zhí)行時間,因此,需要預留合適的時間,否則,可能導致測試不穩(wěn)定?2011 AgileanCopyrightReserved71?Suite和Test都可以設定Timeout,這限定了測試用例的最長執(zhí)行時間,因此,需要預留合適的時間,否則,可能導致測試不穩(wěn)定?2011 AgileanCopyrightReserved71設置Timeout?Timeout也可以通過如下Keyword來設置(GetSeleniumTimeoutSetSeleniumTimeout?Timeout也可以通過如下Keyword來設置(GetSeleniumTimeoutSetSeleniumTimeoutSelenium執(zhí)行速度?GetSetSeleniumSeleniumSpeedSpeed?2011 AgileanCopyrightReserved72設置Timeout(需要被更新)?????要做到流程和數(shù)據(jù)的分離通過不斷抽象,消除冗余?????要做到流程和數(shù)據(jù)的分離通過不斷抽象,消除冗余建立測試用例分層架構,并堅守自動化測試用例必須非常健壯,避免誤報?2011 AgileanCopyrightReserved73????????基本概念安裝執(zhí)行測試????????基本概念安裝執(zhí)行測試使用SeleniumLibrary數(shù)據(jù)驅(qū)動的測試與測試用例的架構使用變量設置Timeout?2011 AgileanCopyrightReserved74敏捷測試過程AgendaOwnerScrumDevelopers,Testers,..+Manager/LeadReleaseOwnerScrumDevelopers,Testers,..+Manager/LeadReleasePlanMeetingSprintReviewReleaseWorkshopSprintPlanMeetingSprint?2011 AgileanCopyrightReserved75ScrumProcessFramework?2011 AgileanCopyrightReserved76?2011 AgileanCopyrightReserved76迭代過程中的測試(A-TDD)????????基本概念安裝執(zhí)行測試????????基本概念安裝執(zhí)行測試使用SeleniumLibrary數(shù)據(jù)驅(qū)動的測試與測試用例的架構使用變量設置Timeout?2011 AgileanCopyrightReserved77敏捷測試過程Agenda?????????基本概念安裝?????????基本概念安裝執(zhí)行測試使用SeleniumLibrary數(shù)據(jù)驅(qū)動的測試與測試用例的架構使用變量設置Timeout敏捷測試過程?2011 AgileanCopyrightReserved78進階問題Agenda?2011 AgileanCopyrightReserved79選擇式輸入與日期處理進階問題?2011 AgileanCopyrightReserved79選擇式輸入與日期處理進階問題?在界面當中,有許多信息使用選擇方式來輸入,如年齡,日期,密碼等等;div層,就是看到的“下拉框”??梢杂萌缦路绞街苯淤x值來進行選擇:??–inputtext?在界面當中,有許多信息使用選擇方式來輸入,如年齡,日期,密碼等等;div層,就是看到的“下拉框”。可以用如下方式直接賦值來進行選擇:??–inputtext//select[@id='registeredAgePeriod']03?2011 AgileanCopyrightReserved80選擇式輸入與日期處理?對于有些日期輸入框,也可以直接調(diào)用JavaScriptwindow.一定要寫不能省略?2011 AgileanCopyrightReserved81?對于有些日期輸入框,也可以直接調(diào)用JavaScriptwindow.一定要寫不能省略?2011 AgileanCopyrightReserved81選擇式輸入與日期處理??很多時候輸入的日期值,需要根據(jù)當前日期計算可以利用BuildInLibrary里面的GetTime來解決?2011 AgileanCopyrightReserved82選擇式輸入與日期處理??很多時候輸入的日期值,需要根據(jù)當前日期計算可以利用BuildInLibrary里面的GetTime來解決?2011 AgileanCopyrightReserved82選擇式輸入與日期處理?日期處理??切換窗口Alert處理和模式對話框?2011 AgileanCopyrightReserved83?日期處理??切換窗口Alert處理和模式對話框?2011 AgileanCopyrightReserved83等待AJAX返回結(jié)果進階問題??定位AJAX會動態(tài)更新的頁面內(nèi)容定義一個等待動態(tài)加載完成的關鍵詞?2011 AgileanCopyrightReserved84??定位AJAX會動態(tài)更新的頁面內(nèi)容定義一個等待動態(tài)加載完成的關鍵詞?2011 AgileanCopyrightReserved84等待AJAX返回結(jié)果?等待界面返回,可以利用BuiltInLibrary里面的WaitUntilKeywordSucceeds關鍵詞?2011 AgileanCopyrightReserved85等待AJAX返回結(jié)果?等待界面返回,可以利用BuiltInLibrary里面的WaitUntilKeywordSucceeds關鍵詞?2011 AgileanCopyrightReserved85等待AJAX返回結(jié)果??日期處理等待AJAX返回結(jié)果?Alert處理和模式對話框?2011 AgileanCopyrightReserved86??日期處理等待AJAX返回結(jié)果?Alert處理和模式對話框?2011 AgileanCopyrightReserved86切換窗口進階問題?如果測試用例打開了多個窗口或多個Frame,可以用如下關鍵詞來進行切換:?如果打開新窗口的時間不確定,可以結(jié)合WaitUntilKeywordSucceeds關鍵詞,以確保切換窗口成功?2011 AgileanCopyrightReserved87?如果測試用例打開了多個窗口或多個Frame,可以用如下關鍵詞來進行切換:?如果打開新窗口的時間不確定,可以結(jié)合WaitUntilKeywordSucceeds關鍵詞,以確保切換窗口成功?2011 AgileanCopyrightReserved87切換窗口?另外,可以使用如下關鍵詞來獲取所有當前打開窗口的信息,方便調(diào)試GetGetGetWindowIdentifiers?另外,可以使用如下關鍵詞來獲取所有當前打開窗口的信息,方便調(diào)試GetGetGetWindowIdentifiersNamesTitles?2011 AgileanCopyrightReserved88切換窗口??????JQuery支持Flex支持Firefox??????JQuery支持Flex支持FirefoxProfiles支持日期處理等待AJAX返回結(jié)果切換窗口?2011 AgileanCopyrightReserved89Alert處理和模式對話框進階問題?在Selenium2/IE中,模式對話框就和一個普通窗口一樣,只需用SelectWindow結(jié)合WaitUntilKeywordSucceeds切換過去即可,在模式對話框關閉之后再用SelectWindow結(jié)合WaitUntilKeywordSucceeds切換回主窗口即可?2011 Agilean?在Selenium2/IE中,模式對話框就和一個普通窗口一樣,只需用SelectWindow結(jié)合WaitUntilKeywordSucceeds切換過去即可,在模式對話框關閉之后再用SelectWindow結(jié)合WaitUntilKeywordSucceeds切換回主窗口即可?2011 AgileanCopyrightReserved90模式對話框的處理??Selenium會修改頁面JS代碼,所以不會有實際的彈出窗口否符合預期?其實這里ConfirmAction不會進行點擊動作,而只是會去獲取需要確認的內(nèi)容,但是如果不調(diào)用ConfirmAction,后面就會報錯了;而ChooseCancel??Selenium會修改頁面JS代碼,所以不會有實際的彈出窗口否符合預期?其實這里ConfirmAction不會進行點擊動作,而只是會去獲取需要確認的內(nèi)容,但是如果不調(diào)用ConfirmAction,后面就會報錯了;而ChooseCancelonNextConfirmation就是規(guī)定下一次Confirm選擇Cancel??2011 AgileanCopyrightReserved91Confirm的處理?Alert的處理?2011 AgileanCopyrightReserved92Alert的處理?Alert的處理?2011 AgileanCopyrightReserved92Alert的處理????日期處理返回結(jié)果切換窗口Alert處理和模式對話框?????日期處理返回結(jié)果切換窗口Alert處理和模式對話框?2011 AgileanCopyrightReserved93模擬Windows動作SeleniumLibrary進階?RobotFramework還有一個AutoItLibrary,Windows界面的關鍵詞,安裝方式如下:安裝PythonWindowsExtension(pywin32-需要本機管理員權限)之后,解壓AutoItLibrary-1.1.zip到任意目錄,然后在目錄下執(zhí)行?RobotFramework還有一個AutoItLibrary,Windows界面的關鍵詞,安裝方式如下:安裝PythonWindowsExtension(pywin32-需要本機管理員權限)之后,解壓AutoItLibrary-1.1.zip到任意目錄,然后在目錄下執(zhí)行??setup.pyinstall注意:–在Win7或WindowsServer上–以你的有管理員權限的用戶登錄?而不要直接用Administrator賬號登錄–要以管理員身份打開命令行窗口–再執(zhí)行setup.py?2011 AgileanCopyrightReserved94模擬Windows動作?安裝之后需要將AutoItLibrary的兩個相關目錄的只讀限制清除,否則,使用RIDE時會拋異常;另外可能沒法SearchKeyword;?2011 AgileanCopyrightReserved?安裝之后需要將AutoItLibrary的兩個相關目錄的只讀限制清除,否則,使用RIDE時會拋異常;另外可能沒法SearchKeyword;?2011 AgileanCopyrightReserved95模擬Windows動作?如果用Administrator執(zhí)行了setup.pyinstall,那么使用其他用戶使用AutoIt時,會報這個錯誤–––>>>Don'tthinkweneedtounregisterthe?如果用Administrator執(zhí)行了setup.pyinstall,那么使用其他用戶使用AutoIt時,會報這個錯誤–––>>>Don'tthinkweneedtounregistertheoldone...Traceback(mostrecentcalllast):File"C:\Python27\Lib\site-packages\pythonwin\pywin\framework\scriptutils.py",line325,inRunScriptexeccodeObjectin main . dict File"C:\pathon2.7.1\AutoItLibrary-1.1\setup.py",line63,in<module>shutil.copyfile("3rdPartyTools/AutoIt/AutoItX3.dll",instFile)File"C:\Python27\lib\shutil.py",line81,incopyfilewithopen(src,'rb')asfsrc:IOError:[Errno2]Nosuchfileordirectory:'3rdPartyTools/AutoIt/AutoItX3.dll‘–––?這時需要刪除AutoItLibrary目錄,同時用regedt32情況注冊表里面所有和AutoIt項目的信息?2011 AgileanCopyrightReserved96模擬Windows動作??使用時需要ImportAutoItLibrary關鍵詞列表請見–http://robotframework-??使用時需要ImportAutoItLibrary關鍵詞列表請見–http://robotframework-AutoItLibrary-1.0/doc/AutoItLibrary.html?2011 AgileanCopyrightReserved97模擬Windows動作?????日期處理返回結(jié)果切換窗口Alert處理和模式對話框模擬Windows動作?????日期處理返回結(jié)果切換窗口Alert處理和模式對話框模擬Windows動作?2011 AgileanCopyrightReserved98String和Collection支持SeleniumLibrary進階?RobotFramework內(nèi)置提供了StringLibrary–ReplaceString–ReplaceString?RobotFramework內(nèi)置提供了StringLibrary–ReplaceString–ReplaceStringUsi–ShouldBeLowercas–ShouldBeString–ShouldBeTitlecas–ShouldBeUppercas–ShouldNotBeStrin–SplitString–SplitStringFromR–SplitToLinesFetchFromLeftFetchFromRightGenerateRandomStringGetLineGetLineCountGetLinesContainingStringGetLinesMatchingPatternGetLinesMatchingRegexpGetSubstring?2011 AgileanCopyrightReserved99String支持?AppendToList·CombineLists·ConvertToList·CopyDictionaryDictionary··CopyList· CountValuesInList·CreateDictionariesShouldBeEqual·DictionaryShouldContainDictionary·Key·DictionaryShouldContainSubDictionaryShouldContainValue·DictionaryShouldNotContainKey·DictionaryShouldNotContainValue·GetDictionaryItems·GetDictionary?AppendToList·CombineLists·ConvertToList·CopyDictionaryDictionary··CopyList· CountValuesInList·CreateDictionariesShouldBeEqual·DictionaryShouldContainDictionary·Key·DictionaryShouldContainSubDictionaryShouldContainValue·DictionaryShouldNotContainKey·DictionaryShouldNotContainValue·GetDictionaryItems·GetDictionaryKeys·GetDictionaryValues·GetFromDictionary·GetFromListIntoList·GetIndexFromList· GetSliceFromList·InsertList·KeepInDictionary·ListShouldContainSub· ListShouldNotContain·ListShouldContainValueDuplicates·ListShouldNotContainValue·ListsShouldBeEqual·LogDictionary· LogList·RemoveFromDictionary·RemoveFromList·RemoveValuesFromList·ReverseList·SetListValue·SetToDictionary·SortList?2011 AgileanCopyrightReserved100Collection支持??????日期處理返回結(jié)果切換窗口Alert處理和模式對話框??????日期處理返回結(jié)果切換窗口Alert處理和模式對話框模擬Windows動作?2011 AgileanCopyrightReserved101Cookie支持SeleniumLibrary進階?Selenium2Lib提供了如下關鍵詞來操作Cookie:DeleteAllCookiesDeleteCookie?Selenium2Lib提供了如下關鍵詞來操作Cookie:DeleteAllCookiesDeleteCookieGetGetCookieValueCookies?2011 AgileanCopyrightReserved102Cookies操作???????日期處理返回結(jié)果切換窗口???????日期處理返回結(jié)果切換窗口Alert處理和模式對話框模擬Windows動作和Collection支持Cookie支持?2011 AgileanCopyrightReserved103鼠標動作SeleniumLibrary進階?Selenium2Lib提供了如下關鍵詞來操作鼠標:GetVerticalPositionGetHorizontalPosition?Selenium2Lib提供了如下關鍵詞來操作鼠標:GetVerticalPositionGetHorizontalPositionMouseMouseMouseMouseMouseMouseDownDownDownOutOverUpOnOnImageLink?2011 AgileanCopyrightReserved104Cookies操作??RegisterKeywordToRunOn??RegisterKeywordToRunOnFailure?Tag?2011 AgileanCopyrightReserved105失敗處理????Flex支持FirefoxProfiles支持RemoteLibraryDBLibrary?????Flex支持FirefoxProfiles支持RemoteLibraryDBLibrary?2011 AgileanCopyrightReserved106JQuery支持其他進階話題?在用例中,將所有ImportLibrary|SeleniumLibrary都換成ImportLibrary|Selenium2Libr?在用例中,將所有ImportLibrary|SeleniumLibrary都換成ImportLib
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 創(chuàng)傷性骨髓炎的健康宣教
- 兒童分離性焦慮障礙的健康宣教
- 《政府的權力用》課件
- 社團之光照亮前行計劃
- 班級年度計劃書
- 學生反饋與課程調(diào)整流程計劃
- 八年級英語NewspapersSpeaking課件
- 文化建設的總結(jié)與員工參與計劃
- 項目成本控制管理計劃
- 舞臺劇社團創(chuàng)意演出構思計劃
- 護理年終個人工作總結(jié)
- 河北省健康體檢主檢醫(yī)師題庫2024年12月
- 電力行業(yè)用水管理制度
- 2025年1月“八省聯(lián)考”考前猜想卷數(shù)學試題01 含解析
- 《論教育》主要篇目課件
- 2022年軍隊文職統(tǒng)一考試《專業(yè)科目》管理學類-管理學試卷(含解析)
- 靜脈輸液治療的風險管理
- 江南大學《高分子化學實驗》2022-2023學年第一學期期末試卷
- 18古詩三首《書湖陰先生壁》說課稿2024-2025學年統(tǒng)編版語文六年級上冊
- 設備驗證工作年底述職報告
- 精神病藥物與藥物性肝損傷
評論
0/150
提交評論