python+selenium+pytest自动化之列表数据处理

简单应用场景,新增一条用户Mike,自动化断言中需要判断该条数据是否会出现在列表中。

解决如下:

1.某一列的定位Locator

   # 列表元素信息-第一列的元素定位用户名
    list_1="//div[@class='ngCellText ng-scope col0 colt0 undefined  mgrid-cell']"
    # 列表元素信息-第2列的元素定位姓名
    list_2=(By.XPATH,"//div[@class='ngCellText ng-scope col1 colt1 undefined  mgrid-cell']")
    # 列表元素信息-第3列的元素定位工号
    list_3=(By.XPATH,"//div[@class='ngCellText ng-scope col2 colt2 undefined  mgrid-cell']")
    # 列表元素信息-第4列的元素定位电话
    list_4=(By.XPATH,"//div[@class='ngCellText ng-scope col3 colt3 undefined  mgrid-cell']")

2.返回该列的所有数据的函数,输入需要返回的列,返回一个内容列表。


def get_table_list(self,locator):
        # 返回该元素定位的所有元素集合
        ele=self.driver.find_elements_by_xpath(locator)
        list=[]
        # 对返回的页面元素遍历
        for i in ele:
            # 返回页面元素的文本内容

            text=i.text
            logging.info("该元素的内容是{0}".format(i.text))
            # 将文本内容添加到列表中保存
            list.append(text)
        # 返回列表信息
        return list

3.Page中调用BasePage中 的get_tabe_list,获取对应的列表数据

 def userlist_data(self):
        text=self.get_table_list(self.list_1)
        logging.info("获取的列表信息是{0}".format(text))
        return text

4.断言中用到

@pytest.mark.userfixtures("login_User")
class TestUserlist:
    def test_add_user(self,login_User):
        UserlistPage(login_User[0]).add_user(add_user["Name"],add_user['pwd'],add_user["EmpName"],add_user["staffno"])
        # pass
        # 断言信息:添加的数据是否出现在列表中,添加的Name是否在第一列表中数据

        assert add_user["Name"] in UserlistPage(login_AUMS[0]).userlist_data()

 

你可能感兴趣的:(Selenium)