Python中如何正确导入并使用Selenium的ByChained实现多定位器链式定位
解决办法
你出现报错是因为ByChained并不属于selenium.webdriver.common.by模块,同时要根据你使用的Selenium版本做对应适配:
如果你使用Selenium 3.x版本
正确导入语句
from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import ByChained
正确使用示例
# 注意补全你原代码缺失的右括号 myLocator = ByChained( (By.CSS_SELECTOR, "selector_top_level"), (By.CSS_SELECTOR, "selector_bottom_level") ) # 定位元素调用示例 target = driver.find_element(myLocator)
如果你使用Selenium 4.x版本
Selenium 4已经移除了ByChained类,直接通过链式调用find_element即可实现完全相同的层级匹配效果,不需要额外导入其他类:
from selenium.webdriver.common.by import By # 先匹配上层节点,再匹配下层节点,等效于原ByChained效果 target = driver.find_element(By.CSS_SELECTOR, "selector_top_level")\ .find_element(By.CSS_SELECTOR, "selector_bottom_level")
如果需要匹配多个符合条件的元素,将对应位置的find_element替换为find_elements即可。
内容的提问来源于stack exchange,提问作者alichur
相关产品推荐
相关产品推荐

