Python和Selenium:deselecall()不工作StaleElementReferenceException

2024-09-29 23:29:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从Select with multiple=“multiple”中取消选择所有值失败,错误为StaleElementReferenceException。我发现这是由于在select菜单中取消选择第一个值后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 我不明白为什么它会出错,即使我在循环中找到了元素。在

任何帮助都是非常感谢的。在

编辑1

我试图抓住这个例外,并按照高朗·沙阿的评论中的建议再试一次:

^{pr2}$

这也不起作用,它只是被困在循环中,一直打印“尝试”。在

编辑2

select的代码如下所示:

<select size="10" name="ErrorCodes" multiple="multiple"
onchange="javascript:setTimeout('__doPostBack(\'ErrorCodes\',\'\')', 0)"
id="dummyId1" title="DummyTitle1" style="width:99%;">

Tags: id元素编辑by错误findmultipleselect

热门问题