goods_name = f"{self.PREFIX_NUM}" # 判断元素是否存在 # 如果元素存在,调用方法 good_lists_page = self.goods_list_page.send_keys_goods_name(goods_name) # 点击查找按钮 goods_search_button = good_lists_page.click_goods_search_button() # 获取商品列表文本 goods_name_text_list = good_lists_page.get_goods_name_text_list() print(goods_name_text_list) # 判断修改名称是否存在 assert goods_name in goods_name_text_list
时间: 2024-04-01 14:30:47 浏览: 59
根据代码来看,这个错误是因为测试代码中的 `goods_name` 变量的值为 "20202198",但是实际上在搜索结果中并没有找到这个商品名称。因此,在执行 `assert goods_name in goods_name_text_list` 时,Python 抛出了 `AssertionError` 异常。
你需要检查测试代码中的数据和实际测试环境中的数据是否一致,确保测试数据正确,并且搜索功能能够正确地返回预期的结果。你可以添加一些调试信息,例如打印出实际的搜索结果和预期的搜索结果,以便更好地了解问题所在。
相关问题
goods_name = f"商品名称添加" # 判断元素是否存在 # 如果元素存在,调用方法 good_lists_page = self.goods_list_page.send_keys_goods_name(goods_name) # good_lists_page = good_list_page.send_keys_goods_name(goods_name) # 点击查找按钮 goods_search_button = good_lists_page.click_goods_search_button() # 获取商品列表文本 goods_name_text_list = good_lists_page.get_goods_name_text_list() # 判断修改名称是否存在 assert goods_name in goods_name_text_list
根据你提供的代码,`goods_name` 的值为 `"商品名称添加"`,在调用 `send_keys_goods_name` 方法时会将该字符串输入到搜索框中。然后调用 `click_goods_search_button` 方法进行搜索,并获取搜索结果的文本列表,存储在 `goods_name_text_list` 变量中。最后使用 `assert` 断言,判断 `goods_name` 是否在 `goods_name_text_list` 中。但是根据报错信息显示,`goods_name_text_list` 中不存在 `"商品名称添加"` 这个字符串。你需要检查一下 `goods_name_text_list` 列表中的元素是否正确,或者确认一下你要查找的字符串是否正确。
FAILED [100%] test_litemall_po.py:58 (TestLitemallPo.test_goods_search) self = <tests.test_litemall_po.TestLitemallPo object at 0x0000021F43F12890> def test_goods_search(self): # # 查找也不用新页面 # with allure.step("点击添加按钮"): # goods_add_page = self.goods_list_page.click_goods_add_button() # time.sleep(1) # with allure.step("进入商品添加页面,输入商品编号、商品名称、点击上架按钮"): # goods_number = int(self.nowtime + self.PREFIX_NUM) # goods_name = f"{self.PREFIX_NUM}_{str(self.nowtime)}_商品名称添加" # good_list_page = goods_add_page.send_keys_goods_number(goods_number).send_keys_goods_name(goods_name).click_putaway_button() # with allure.step("获取商品列表文本"): # goods_name_text_list = good_list_page.get_goods_name_text_list() good_list_page = self.goods_list_page.click_goods_search_button() # 输入商品名称 goods_name = f"商品名称添加" > good_lists_page = good_list_page.send_keys_goods_name(goods_name) E AttributeError: 'NoneType' object has no attribute 'send_keys_goods_name' test_litemall_po.py:74: AttributeError
根据报错信息,你在 `test_goods_search` 方法中调用了 `good_list_page` 的 `send_keys_goods_name` 方法,但是 `good_list_page` 的值为 `None`,因此出现了 `'NoneType' object has no attribute 'send_keys_goods_name'` 的错误。
这个问题可能是由于在调用 `click_goods_search_button` 方法后,`good_list_page` 没有成功获取到对应的页面元素,导致返回了 `None` 对象。你可以在获取元素的代码中加入一些判断逻辑,确保元素能够正确地被获取到。比如可以使用 `find_element_by_` 系列方法获取元素,如果元素不存在,则返回 `None` 对象,可以在后续的代码中判断 `good_list_page` 是否为 `None`,如果是,可以通过重新获取元素或者抛出异常来处理。
你可以尝试使用以下代码来重新获取元素:
```
# 点击搜索按钮
good_list_page = self.goods_list_page.click_goods_search_button()
# 判断元素是否存在
if good_list_page is not None:
# 如果元素存在,调用方法
good_lists_page = good_list_page.send_keys_goods_name(goods_name)
else:
# 如果元素不存在,抛出异常或者重新获取元素
raise Exception("Can't find good_list_page element.")
```
这样就可以避免在空对象上调用方法导致的错误。
阅读全文