Python 3.x Selenium Stale元素Python

Python 3.x Selenium Stale元素Python,python-3.x,selenium,Python 3.x,Selenium,我正在制作一个机器人,一次又一次地删除和重新创建一个不和谐频道 即使刷新后再次收集元素,代码也会显示陈旧的元素错误 def重拍_频道(自): 睡眠(5) script=”“” document.querySelectorAll('a[aria label=“aa”')[0]。单击() """ self.driver.execute_脚本(脚本) def delete_通道(): channels=self.driver.find_elements_by_xpath(“//div[contains

我正在制作一个机器人,一次又一次地删除和重新创建一个不和谐频道

即使刷新后再次收集元素,代码也会显示陈旧的元素错误

def重拍_频道(自):
睡眠(5)
script=”“”
document.querySelectorAll('a[aria label=“aa”')[0]。单击()
"""
self.driver.execute_脚本(脚本)
def delete_通道():
channels=self.driver.find_elements_by_xpath(“//div[contains(@class,'content-3at_-AU')]))
对于通道中的通道:
text=channel.get_属性('innerText')
如果text==“新建”:
self.action.context\u单击(在\u元素=通道上)
self.action.perform()
self.driver.find_元素_by_xpath(“//div[contains(text(),'Delete Channel')]”)。单击()
睡眠(1)
self.driver.find_元素_by_xpath(“//div[contains(text(),'Delete Channel')]”)。单击()
打印(“删除频道”)
def make_通道():
script=”“”
document.querySelectorAll('div[class=“contents-18-Yxp”]”)[1]。单击()
"""
self.driver.execute_脚本(脚本)
睡眠(1)
self.driver.by_xpath(//input[contains(@class,'inputDefault-\u djkz input-cIJ7To'))查找_元素。发送_键('new'))
self.driver.find_元素_by_xpath(“//div[contains(text(),'Create Channel')]”)。单击()
打印(“添加频道!”)
删除_频道()
make_channel()

Amy help非常感谢您的元素引用(通道)在单击后变得过时(DOM正在更新,您的引用不再有效)我在更新DOM后获取元素,但仍然显示陈旧元素错误使用webdriverwait或只是简单的睡眠…检查时DOM可能仍在更新。您还可以对get_elements调用进行函数化,并捕获陈旧元素引用…如果捕获到的DOM仍在更新…回调函数。一定会尝试它