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()
我不断的寻找
原文地址:https://www.cnblogs.com/yNds/p/5312149.html