本次以笔者公告栏的 打赏 弹窗为例 对弹窗中的一些操作进行封装后,在测试中使用 作用:减少对弹窗反复操作时进行定位的麻烦,以后使用中都直接调用即可达到目的 1 # coding=utf-8
本次以笔者公告栏的 打赏 弹窗为例
对弹窗中的一些操作进行封装后,在测试中使用
作用:减少对弹窗反复操作时进行定位的麻烦,以后使用中都直接调用即可达到目的
1 # coding=utf-8 2 3 from selenium import webdriver 4 import unittest, time 5 6 class dialogManu(unittest.TestCase): 7 8 9 def dialog(self): 10 u"定位dialog" 11 dialog = self.dr.find_element_by_class_name(‘shang_box‘) 12 return dialog 13 14 def dialog_close(self): 15 u"关闭弹窗" 16 dialog = dialogManu.dialog(self) 17 close = dialog.find_element_by_class_name(‘shang_close‘).click() 18 return close 19 20 def dialog_select_pay(self,text): 21 u"弹窗中支付选则" 22 dialog = dialogManu.dialog(self) 23 pay_items = dialog.find_elements_by_class_name(‘pay_item‘) 24 25 if text == "微信": 26 pay_select = pay_items[1].click() 27 elif text == "支付宝": 28 pay_select = pay_items[0].click() 29 else: 30 print("没有找到" + text) 31 32 return pay_select 33 34 35 def test_dialog(self): 36 u"testcase" 37 self.dr = webdriver.Chrome() 38 self.dr.maximize_window() 39 url = "https://www.cnblogs.com/tynam/p/10260021.html" 40 self.dr.get(url) 41 self.dr.implicitly_wait(10) 42 43 # 进入到支付dialog 44 self.dr.find_element_by_class_name(‘dashang‘).click() 45 time.sleep(1) 46 47 dialog = dialogManu.dialog(self) 48 # 选则微信支付 49 dialogManu.dialog_select_pay(self, "微信") 50 51 # 关闭dialog 52 dialogManu.dialog_close(self) 53 54 # 关闭浏览器 55 self.dr.close() 56 57 if __name__ == ‘__main__‘: 58 unittest.main()
这而暂时只是对单个弹窗进行封装的处理
在实际项目中可以对项目中所有的弹窗进行封装,都封装在该py文件中
以后自动化脚本中遇到弹窗均可调用该方法