我正在编写测试,在那里我为应用程序创建一个ip池,然后在下一步中删除它。
功能如下:
def remove_passed_ip(self, ip):
""" Find and ip and delete it
Args:
ip (str): the name of ip to click and delete
Returns:
webelement
"""
index = -1
try:
ipDelBtnList = self.wait_for_presence_of_all_elements(self.onboarding_select_address_pools_delete_btn_list)
ipList = self.wait_for_presence_of_all_elements(self.onboarding_select_address_pools_list)
time.sleep(5)
except:
self.log.info("dasdda")
else:
for ips in ipList:
index +=1
temp = ips.text.split('/')
if str(ip)==str(temp[0]):
ipHandle = ipDelBtnList[index]
time.sleep(5)
ipHandle.click()
time.sleep(15)
删除操作正常,删除创建的ip,但在测试结束后,它会将错误视为
Message: Element is no longer attached to the DOM
请提供解决此问题的任何指示。如果对此问题有任何其他说明,请告诉我。
答案 0 :(得分:1)
这是因为删除后DOM会发生变化,Selenium与浏览器的所有“引用”都会丢失。
要解决此问题,您需要在删除上一个元素之后再从页面中获取元素(或确定要更改DOM的任何其他操作)。