# 点击删除按钮 def click_goods_delete_button(self): goods_delete_button = '.el-button.el-button--danger.el-button--mini' # self.driver.find_element(By.XPATH,goods_delete_button).click() def wait(driver): # 编写显示等待的逻辑 # 点击一个控件有时会失效 一直重试 self.driver.find_element(By.CSS_SELECTOR,goods_delete_button).click() # 显式等待 使用自定义函数 WebDriverWait(self.driver, 5).until(wait)
时间: 2024-03-31 21:38:14 浏览: 75
根据你提供的代码,删除商品的操作是通过找到页面上的删除按钮,并点击该按钮实现的。如果该删除按钮的 CSS Selector 是正确的,并且页面上只有一个删除按钮,那么这个删除操作应该是可行的。但是,你的测试代码中抛出了一个断言错误,这可能意味着商品没有被正确地删除。在这种情况下,你需要检查测试代码中的断言语句,并且检查商品是否真正地被删除了。你可以通过页面上的元素或者接口的返回值来判断商品是否被删除。
相关问题
class initface(): def __init__(self,master): self.master = master self.master.config(bg='white') self.initface = tk.Frame(self.master,) self.initface.pack() # 左边:按钮区域,创建一个容器 self.Pane_top = tk.PanedWindow(width=900, height=100, background="white") self.Pane_top.place(x=0, y=0) self.Pane_left = tk.PanedWindow(width=210, height=540, background="grey") self.Pane_left.place(x=0, y=94) self.Pane_right = tk.PanedWindow(width=690, height=540, background="white") self.Pane_right.place(x=210, y=94) self.bg_photo = tk.PhotoImage(file='manager.gif') img_label = tk.Label(self.Pane_top, image=self.bg_photo, width=900, height=120) img_label.place(x=0, y=0) img_label.pack() # 添加左边按钮 self.btn = tk.Button(self.Pane_top, text='退出', width=6, font=("华文黑体", 10, "bold"), command=self.change) self.btn.place(x=830, y=4) self.LabelFrame_operate = tk.LabelFrame(self.Pane_left, text="操作窗口", width=200, height=200) self.LabelFrame_operate.place(x=5, y=0) self.Button_add = tk.Button(self.LabelFrame_operate, text="添加学生", width=10, font=("华文黑体", 15, "bold"), command=self.addstudent) self.Button_add.place(x=40, y=20) self.Button_update = tk.Button(self.LabelFrame_operate, text="加入学会", width=10, font=("华文黑体", 15, "bold"), command=self.add_union) self.Button_update.place(x=40, y=80) self.Button_delete = tk.Button(self.LabelFrame_operate, text="删除学生", width=10, font=("华文黑体", 15, "bold"), command=self.delete_student) self.Button_delete.place(x=40, y=140) self.LabelFrame_delete = tk.LabelFrame(self.Pane_left, text="学生删除窗口,输入需删除学生\n学号后请点击\n‘删除学生'按钮进行操作’", width=200, height=340) self.LabelFrame_delete.place(x=5,y=200) self.Label_delete_sno = tk.Label(self.LabelFrame_delete, text="学号:") self.Label_delete_sno.place(x=10, y=30) self.Entry_delete_sno = tk.Entry(self.LabelFrame_delete, width=8) self.Entry_delete_sno.place(x=45, y=30) # self.Label_delete_name = tk.Label(self.LabelFrame_delete, text="姓名:") # self.Label_delete_name.place(x=10, y=80) # self.Entry_delete_name = tk.Entry(self.LabelFrame_delete, width=8) # self.Entry_delete_name.place(x=45, y=80)
这是一个 Python 类的初始化方法,该类创建了一个图形用户界面(GUI)窗口。在这个窗口里,有一个顶部的按钮区域和一个左侧的操作窗口,以及一个右侧的空白区域。在左侧操作窗口中,有三个按钮,分别用于添加学生、加入学会和删除学生。在删除学生区域中,有一个文本框用于输入要删除的学生的学号。整个 GUI 界面的布局和样式都是使用 tkinter 库实现的。
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.")
```
这样就可以避免在空对象上调用方法导致的错误。
阅读全文