gpt4 book ai didi

python - 使用 Python selenium 处理 'No such element exception'

转载 作者:行者123 更新时间:2023-11-28 17:09:08 25 4
gpt4 key购买 nike

我试图在下拉列表中选择(如果存在)一年中的一个月,其中(月)可以是从“一月”到“十二月”的任何字符串(这些也是下拉列表中的元素)
但不一定每个月都在列表中。

Select(driver.find_element_by_id("selectMonth")).select_by_visible_text("%s" % (month))  

“selectMonth”是列表的id,可见的文字按照月份命名。我创建了一个循环,我在其中选择从 1 月到 12 月的每个月,但是当月份不在列表中时我遇到了问题 (NoSuchElementException)。

如何在尝试选择之前检查月份是否在下拉列表中?

在另一篇文章 ( Selenium "selenium.common.exceptions.NoSuchElementException" when using Chrome ) 中有一些关于 NoSuchElementException 的有用信息,但我无法用它来解决我的问题。它很相似,但又不一样。

最佳答案

我认为这应该可以解决您正在尝试的问题。我将下拉列表中可用的每个月的文本添加到列表中,它将在尝试选择循环中的当前月份之前进行检查。

MonthSelect = Select(driver.find_element_by_id("selectMonth"))
DropDownOptions = []
# seems like you have the string of each month in a list/array already so I will refer to that
for option in MonthSelect.options: DropDownOptions.append(option.text)
for month in MonthList:
if month in DropDownOptions:
MonthSelect.select_by_visible_text("%s" % (month))

编辑:

正如@Bob 指出的那样,您也可以这样捕获 Exception:

from selenium.common.exceptions import NoSuchElementException

try:
Select(driver.find_element_by_id("selectMonth")).select_by_visible_text("%s" % (month))
except NoSuchElementException:
pass

这样您就可以每个月都尝试,但只是度过不存在的月份。

关于python - 使用 Python selenium 处理 'No such element exception',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48911081/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com