0


python selenium 实现UI自动化POM设计模式

# 对操作对象封装
class BasePage:
  driver = webdriver.Chrome()
# 访问URL
  def visit(self, url):
    self.driver.get(url)# 元素定位
  def locator(self, loc):
     return self.driver.find_element(*loc)# 输入
  def input(self, loc, txt):
     self.locator(loc).send_keys(txt)
     # 点击
  def click(self, loc):
     self.locator(loc).click()# 等待
  def wait(self, time):
     sleep(time)# 关闭
  def close(self):
     self.driver.quit()
# 对文本对象封装
class SearchPage(BasePage):
    url = 'http://www.baidu.com'# 定位百度输入框
    search_input = (By.NAME, 'wd')# 定位百度一下按钮
    search_button = (By.ID, 'su')# 封装实现业务流程的函数
    def search(self, txt):
        self.visit(self.url)
        self.wait(2)
        self.input(self.search_input, txt)
        self.wait(2)
        self.click(self.search_button)
# 普通数据驱动
class Case(unittest.TestCase):
    def test_search1(self):
        driver = webdriver.Chrome()
        txt = 'selenium'
        SearchPage(driver).search(txt)
    def test_search2(self):
            driver = webdriver.Chrome()
            txt = 'python'
            SearchPage(driver).search(txt)
# 数据驱动
import [email protected]()
class Case(unittest.TestCase):
    @classmethod
    def setUpClass(cls) -> None:
        cls.driver = webdriver.Chrome()
        cls.se = SearchPage(cls.driver)
    @classmethod
    def tearDownClass(cls) -> None:
            cls.driver.quit()
    @ddt.file_data('../data/searchTXT.yaml')
    def test_search(self, txt):
            self.se.search(txt)
if __name__ == '__main__':
    unittest.main()

PS:只采用数据驱动的方式,对page模式有了新的改变


本文转载自: https://blog.csdn.net/testManger/article/details/131568594
版权归原作者 小赖同学啊 所有, 如有侵权,请联系我们删除。

“python selenium 实现UI自动化POM设计模式”的评论:

还没有评论