You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Seleniumbase Driver元素内查找元素报错,求替代实现方法

问题:Seleniumbase Driver查找子元素报错及替代方法

原始代码

Python代码

from seleniumbase import Driver
from time import sleep

driver = Driver(uc=True)

driver.open(URL)
element = driver.find_element("li[id^='marketItem']")
element_price = element.find_element(".rightCol")
print(element_price.text)
sleep(999)

问题描述

上述代码在undetected_chromedriver中可正常运行,但使用Seleniumbase Driver时触发错误:

selenium.common.exceptions.InvalidArgumentException: Message: invalid argument: invalid locator

原因及解决方法

Seleniumbase的find_element方法对定位符格式要求更严格,直接传入CSS选择器字符串会被识别为无效定位符,可通过以下方式解决:

方法1:显式指定定位策略

导入By类,明确指定CSS选择器的定位策略:

from seleniumbase import Driver
from selenium.webdriver.common.by import By
from time import sleep

driver = Driver(uc=True)

driver.open(URL)
element = driver.find_element(By.CSS_SELECTOR, "li[id^='marketItem']")
element_price = element.find_element(By.CSS_SELECTOR, ".rightCol")
print(element_price.text)
sleep(999)

方法2:使用带前缀的定位符

Seleniumbase支持在定位符前添加前缀指定策略,用css:标识CSS选择器:

from seleniumbase import Driver
from time import sleep

driver = Driver(uc=True)

driver.open(URL)
element = driver.find_element("css:li[id^='marketItem']")
element_price = element.find_element("css:.rightCol")
print(element_price.text)
sleep(999)

方法3:使用Seleniumbase专属API

直接用find_css方法简化CSS选择器定位:

from seleniumbase import Driver
from time import sleep

driver = Driver(uc=True)

driver.open(URL)
element = driver.find_css("li[id^='marketItem']")
element_price = element.find_css(".rightCol")
print(element_price.text)
sleep(999)

内容的提问来源于stack exchange,提问作者Dimi140

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 20:34:59