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
时间: 2024-03-23 10:42:05 浏览: 144
根据报错信息,你在 `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.")
```
这样就可以避免在空对象上调用方法导致的错误。
阅读全文