我试图取消选择Select with multiple =“multiple”的所有值失败,并显示错误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
这也不起作用,它只是卡在循环中,一直打印“尝试”。
EDIT2
select的代码如下所示:
<select size="10" name="ErrorCodes" multiple="multiple"
onchange="javascript:setTimeout('__doPostBack(\'ErrorCodes\',\'\')', 0)"
id="dummyId1" title="DummyTitle1" style="width:99%;">