自己新建一个类,继承unittest,然后修改必要的一些方法,并添加部分方法,譬如设置testName啊,设置标记值来标记case知否执行结束啊。这些都是可以根据自己喜好来加入的方法。

def setTestName(self, tname):
self.testname = tname
def getTestName(self):
return self.testname
def setCompleted(self):
self.completed = True
def isCompleted(self):
return self.completed


  对于unittest框架的修改 写这么多。

  对selenium的基本方法做一些小改动,动机优化 unittest 框架一致,只是为了让你的用例跑起来的时候更加让人理解。我们相当于在 selenium 的基本方法外面又封装了一层。下面是部分方法示例:

def open(self,url):
self.sel.open(url)
def GetValue(self, element):
value = self.sel.get_value(element)
self.assertLogTrue(True, "Value for element %s is %s" %(element, value))
return value
def isTextPresent(self, text):
val = self.sel.is_text_present(text)
if val is False:
self.assertLogTrue(val, note="error occured *************" + text +
" not found")
else:
print 'present (%s,%s)' % (text,val)
return val
def Select(self, element, selection):
if self.isElementPresent(element):
self.sel.select(element, selection)
def Check(self, element):
if self.isElementPresent(element):
self.sel.check(element)
def Type(self, element, text):
if self.isElementPresent(element):
self.sel.type(element, text)


  测试数据分离,这个做的非常简单,是把期望值和控件位置作为测试数据放入 xml 中。

GWEB
link
//span[text()="Web"]
Web
GIMAGES
link
//span[text()="Images"]
Images


  name 表示控件名字,type 为控件的类型,locator 表示控制位置,expect_value 表示期望值。