报错信息selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: element is not attached to the page document
原程序
self.click(Search_fleet_page.click_fleet_list)
self.click(Search_fleet_page.edit)
time.sleep(1)
print(type(Search_fleet_page.edit_remove_elements))
buttons_list=self.locator_elements(Search_fleet_page.edit_remove_elements)
print(len(buttons_list))
for i in buttons_list:
time.sleep(1)
i.click()
self.click(Search_fleet_page.edit_confirm)
修改后
def edit_remove_all_click(self): self.click(Search_fleet_page.click_fleet_list)
self.click(Search_fleet_page.edit)
time.sleep(1)
buttons_list=self.locator_elements(Search_fleet_page.edit_remove_elements)
print('获取到%s条数据'%len(buttons_list))
for i in buttons_list:
print(i)
time.sleep(1)
try:
i.click()
except Exception as a:
buttons_list = self.locator_elements(Search_fleet_page.edit_remove_elements)
buttons_list[0].click()
self.click(Search_fleet_page.edit_confirm)
报错后抛出异常后再次重修定位元素经行点击操作完美解决
也可以试试下面这个方法,我试过报错IndexError: list index out of range,所以换了上面的方法
def edit_remove_all_click(self):
self.click(Search_fleet_page.click_fleet_list)
self.click(Search_fleet_page.edit)
time.sleep(1)
buttons_list=self.locator_elements(Search_fleet_page.edit_remove_elements)
print('获取到%s条数据'%len(buttons_list))
for i in range(len(buttons_list)):
print(i)
time.sleep(1)
#每循环一次重新定位元素
buttons_list = self.locator_elements(Search_fleet_page.edit_remove_elements)
buttons_list[i].click()
self.click(Search_fleet_page.edit_confirm)