> 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:73: AttributeError
时间: 2024-04-01 16:35:36 浏览: 63
这个错误通常表示你尝试在一个空对象上调用方法。在这个例子中,可能是因为 `good_list_page` 没有成功获取到你想要的页面元素,导致返回了 `None` 对象。你可以在获取元素的代码中加入一些判断逻辑,确保元素能够正确地被获取到。比如可以使用 `find_element_by_` 系列方法获取元素,如果元素不存在,则返回 `None` 对象,可以在后续的代码中判断 `good_list_page` 是否为 `None`,如果是,可以通过重新获取元素或者抛出异常来处理。
相关问题
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.")
```
这样就可以避免在空对象上调用方法导致的错误。
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` 列表中的元素是否正确,或者确认一下你要查找的字符串是否正确。
阅读全文