首页 > 解决方案 > Selenium 显式等待错误地接受 EC.visibility_of_element_located xpath 元素

问题描述

我目前正在运行 selenium pytest 自动化,并且遇到了显式等待的问题。我有一个这样的 WebDriverWait 函数:

WebDriverWait(driver, 10).until(EC.visibility_of_element_located((
    By.XPATH, '//div[@class="ant-card ant-card-bordered" and //*[contains(text(), "Access Points")]]')))

页面上不存在此特定 xpath 元素。

不存在 xpath 元素的页面图像

因此,我期望一个失败的测试用例。奇怪的是,它使用 docker 映像按预期工作并成功产生超时异常,但是当在本地 Web 浏览器上运行时,它通过显式等待而没有任何超时异常。我相信 xpath 元素有些奇怪,因为当我将 text() 属性编辑为页面上不存在的字符串时,它会正确失败。请注意,使用 chrome 检查工具搜索 xpath 元素时,找不到该元素,如上图所示

标签: pythonseleniumpytest

解决方案


正如我在附图中看到的:选定的 div 不包含文本“接入点”。让我们从 XPath 中删除它,或者尝试找到另一个实际包含此类文本的 div。


推荐阅读