我在从一个网站得到一个动态元素时遇到了麻烦,基本上我从我的用户那里得到了输入,后来被用作一个网站的输入,我想得到的元素的名称在我之前得到的输入的基础上发生了变化。因此,我要查找的类有两个可能的名称,label label success或label label danger。现在的代码是:
for elem in browser.find_elements_by_xpath('.//span[@class = "label label success"]'):
print elem.text
但是每当我从用户那里得到输入,将类名更改为label label danger,我就会得到低于错误的结果
StaleElementReferenceException: Message: {"errorMessag "Element does not exist in cache}
我的问题是:有没有可能做到:
^{pr2}$如果是,怎么办?或者有没有其他简单的方法来解决这个问题?谢谢你
您得到StaleElementReferenceException的原因如下。在
您正在创建一个WebElements列表并尝试遍历该列表。但是当你收集到WebElement的列表时(下面的代码)
并试图对此采取行动(代码如下)
^{pr2}$页面上发生了变化。(可能不可见),因此webdriver告诉您该元素已过时。在
下面的代码我来解决这个问题。在
或者,您应该能够使用XPath或运算符|,例如:
您可以尝试将它们分成两个列表,一个用于“label label success”,另一个用于“label label danger”,然后以不同的方式迭代它们。或者像这样
相关问题 更多 >
编程相关推荐