背景:做web自动化的时候,有的时候需要校验系统中的打印页面功能,打印页面的,打开,跳转以及关闭是可以通用的,这样就考虑把每个页面的校验独立开来,运用装饰器能很好的解决这类问题。
def print1(func):
def wrapper(*args):
co.login(args[0])
implement=args[0].find_element_by_link_text("发货管理")
chain=ActionChains(args[0])
chain.move_to_element(implement).perform()
a.click_link(args[0],"打印拣货单")
a.xpath(args[0],"//table/tr[1]/td[9]/div/a[2]")
a.xpath(args[0],"//table/tr[4]/td[text()='打印地址标签']")
getwindowhandles=args[0].window_handles
args[0].switch_to_window(getwindowhandles[1]) #选取打印窗口
time.sleep(3)
func(*args)
args[0].close()
args[0].switch_to_window(getwindowhandles[0]) #切换到主窗口
return wrapper
@print1
def check_page(browser):
u'页面校验项'
a.check_xpath(browser,"//table/tr[1]/td[3]/div/div/a")
check_page(webdriver.Firefox())