Python繼承Selenium2Library


  最近在搞Robot Framework,吐槽一下別人寫的框架真是難用。
  Robot Framework主要用的庫是Selenium2Library(以下簡稱S2L)進行驅動,但是調試不是很方便,所以我考慮如果可以在自己的框架中
調用其關鍵字方法就挺好,繼承是一個不錯的思路。
  Python的繼承並不會直接繼承基類的__init__方法,所以如果子類需要直接調用基類的類變量,需要繼承其__init__方法,有兩種辦法,在子類__init__方法
中直接實例化一個基類對象或者直接調用基類__init__方法即可。
  附上Python中調用S2L庫的測試代碼,該類是可以直接導入到RF中作為外部庫使用的。

  

 1 #coding:utf-8
 2 '''
 3 @version: 23.3.2016
 4 @author: yndots
 5 '''
 6 from Selenium2Library import Selenium2Library
 7 from Selenium2Library.keywords import *
 8 import time
 9 from time import sleep
10 
11 class _Basic(Selenium2Library):
12     
13     def __init__(self):
14 #         self.s2l=Selenium2Library()
15         Selenium2Library.__init__(self)
16     def my_open_browser(self):
17         #自己的打開瀏覽器方法
18         try:
19             driver = self._current_browser()
20         except RuntimeError, e:
21             self.open_browser("http://www.sz1card1.com", "chrome")
22             driver = self._current_browser()
23         return driver
24     def test_login(self):
25 #         s2l=Selenium2Library()
26         driver=self.my_open_browser()
27         driver.implicitly_wait(8)
28 #         driver=self._current_browser()
29 #         _BrowserManagementKeywords().set_browser_implicit_wait(8)
30 #         driver.click_element('//*[@id="txtBusinessAccount"]')
31         time.sleep(1)      
32         driver.find_element_by_xpath('//*[@id="txtBusinessAccount"]').send_keys("liaoyu")
33         driver.find_element_by_xpath('//*[@id="txtUserAccount"]').send_keys("10000")
34         driver.find_element_by_xpath('//*[@id="txtUserPassword"]').send_keys("ly123456")
35         driver.find_element_by_xpath('//*[@id="btnlogin"]').click()
36         self.click_element("//div[text()='消費收銀']")
37         
38 if __name__ == '__main__':
39     _Basic().test_login()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM