Python和Selenium:Deselectall()无效 - StaleElementReferenceException

时间:2017-03-07 10:38:26

标签: python selenium

我试图取消选择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%;">

0 个答案:

没有答案