
[英]Python and Selenium: StaleElementReferenceException
[英]Python and Selenium: Deselectall() not working - StaleElementReferenceException
我试图从具有多个=“ multiple”的Select中取消选择所有值,但失败,错误为StaleElementReferenceException。 我发现这是由于在选择菜单中取消选择第一个值后DOM发生了变化。 但是,即使我将find元素放入循环中并尝试自行取消选择每个值,也会遇到相同的错误。
for valueToDeselect in val_list:
elem1 = Select(browser.find_element_by_id("dummyId1"))
elem1.deselect_by_value(valueToDeselect)
这将返回错误: StaleElementReferenceException: Element is no longer attached to the DOM
我找不到它,为什么它引发错误,即使我在循环内找到该元素也是如此。
任何帮助深表感谢。
EDIT1
我试图捕获异常,然后按照Gaurang Shah的评论中的建议再次尝试:
for valueToDeselect in val_list:
while True:
print("trying")
elem1 = Select(browser.find_element_by_id("dummyId1"))
elem1.deselect_by_value(valueToDeselect)
break
except:
continue
这也不起作用,它陷入了循环,一直打印“ trying”。
EDIT2
选择的代码如下所示:
<select size="10" name="ErrorCodes" multiple="multiple"
onchange="javascript:setTimeout('__doPostBack(\'ErrorCodes\',\'\')', 0)"
id="dummyId1" title="DummyTitle1" style="width:99%;">
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.