![c5ff98da9046841e7df7757b576caeaa.gif](https://i-blog.csdnimg.cn/blog_migrate/ba83df6b89e6f38ded9740af3a2cecff.gif)
点击关注,我们共同每天进步一点点!
search_page.py
PO模式中封装的百度的搜索页,继承了上面的BasePage类;每个页面类中上面定义各控件的表达式,下面将页面上的各种操作封装为方法。这样如果在多个用例中调用了控件或操作方法,将来更新维护只需要在页面类中改一下,所有用例就都更新了。
from page_object.base_page import BasePage
class SearchPage(BasePage):
def __init__(self, driver):
self.driver = driver
# i=输入框, l=链接, im=图片, t=文字控件, d=div, lab=label
# 含_百度百科的搜索结果
l_baike = 'xpath,//a[(. = "星空物语_百度百科")]'
# 下一页
b_next_page = 'link,下一页>'
# 上一页
b_up_page = 'xpath,//a[(. = "
# 点击搜索结果的百科
def click_result(self):
self.open_new_window_by_locator(self.l_baike)
self.sleep(3)
# 点击下一页
def click_next_page(self):
self.click(self.b_next_page)
test_search.py
百度搜索页的测试用例,这里我简单写了2个用例,第1个是搜索后点击首个搜索结果可打开,第2个是搜索结果可翻页。用例中的具体操作均是使用的上面页面类中封装好的操作方法。
import sys
reload(sys)
sys.setdefaultencoding('utf8')
from page_object.home_page import HomePage
from page_object.search_page import SearchPage
import pytest
import config.config as cf
class TestSearch():
"""
pytest:
测试文件以test_开头
测试类以Test开头,并且不能带有__init__方法
测试函数以test_开头
断言使用assert
"""
driver = cf.get_value('driver') # 从全局变量取driver
home_page = HomePage(driver)