我正在使用Python用Selenium编写自动化测试.一种元素可能存在,也可能不存在.我试图用下面的代码来处理它,当元素存在时,它就会工作.但当元素不存在时脚本失败,如果元素不存在,我想继续下一个语句.

try:
       elem = driver.find_element_by_xpath(".//*[@id='SORM_TB_ACTION0']")
       elem.click()
except nosuchelementexception:
       pass

错误-

selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element:{"method":"xpath","selector":".//*[@id='SORM_TB_ACTION0']"}

推荐答案

您可以查看该元素是否存在,如果存在,请单击它.不需要例外.注意.find_elements_*中的复数"s".

elem = driver.find_elements_by_xpath(".//*[@id='SORM_TB_ACTION0']")
if len(elem) > 0
    elem[0].click()

Python-3.x相关问答推荐

如何在Django中创建两个不同权限的用户?

切片时是否在NumPy ND数组中创建新对象?

Pandas 根据条件增加Dataframe列

如何将多输入数据加载器传递给单输入模型

三重奏:为什么频道被记录为使用async with,而不是with?

Python Regex 查找给定字符串是否遵循交替元音、辅音或辅音、元音的连续模式

找到操作系统的图片文件夹的 CLI

如何查找 tensorflow.python.data.ops.dataset_ops.MapDataset 对象的大小或形状,make_csv_dataset 的输出

无法在 Windows Python 3.5 上安装 Levenshtein 距离包

创建一个可旋转的 3D 地球

Python:遍历子列表

为什么 virtualenv 会有效地禁用 Python 3 制表符补全?

TypeError:列表索引必须是整数或切片,而不是列表

ImportError:无法在 PyQt5 中导入名称QStringList

如何模拟 open(...).write() 而不会出现没有这样的文件或目录错误?

谁能给我一个 Python 3 中标准输入和标准输出的快速教程?

没有名为urlparse的模块,但我没有使用 urlparse

在动态链接库 Anaconda3\Library\bin\mkl_intel_thread.dll 中找不到序数 242

Python 无法处理以 0 开头的数字字符串.为什么?

如何从 Base64 转换为字符串 Python 3.2