Selenium Python中By.PARTIAL_LINK_TEXT的WebDriverWait正确用法
正确使用
By.PARTIAL_LINK_TEXT实现带显式等待的元素点击 错误原因
异常代码存在两处核心问题:
- 匹配文本大小写错误:传入的匹配值为
"LogSyS"(s为大写),可正常定位的目标元素链接文本为"LogSys"(s为小写),文本不匹配会直接导致元素检索失败。 - 定位元组传参格式错误:
EC.element_to_be_clickable()接收的定位器为固定格式的二元组,仅需要按位置传入定位方式、定位值两个参数,不需要添加value=关键字声明。元组内传入键值对格式的参数不符合Selenium的定位器解析规则,会导致定位逻辑异常。
正确代码示例
# 提前导入对应依赖 from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By WebDriverWait(driver, 20).until( EC.element_to_be_clickable((By.PARTIAL_LINK_TEXT, "LogSys")) ).click()
补充说明
直接调用find_element时加value=传参可以正常运行,是因为find_element方法原生支持by、value两个关键字参数;但传入显式等待的判断条件时,定位器元组会被按位置顺序解析——第一个元素识别为定位类型,第二个元素识别为定位表达式,此时传入带value=的键值对会被识别为非字符串类型的定位值,无法正常匹配元素。
内容的提问来源于stack exchange,提问作者fedordima
相关产品推荐
相关产品推荐

