Selenium无法定位可见元素,请求仅通过类名定位的解决方案
问题原因及解决办法
- 问题根源:Selenium的
By.CLASS_NAME定位方式仅支持单个类名,你传入的是多个空格分隔的类名(h1 mb-4 font-weight-normal nh-read__title),不符合该定位规则,因此无法找到目标元素。 - 解决办法:
- 使用单个唯一类名定位:从元素的多个类中挑选一个唯一的类名,比如
nh-read__title,修改后的代码如下:element = WebDriverWait(driver, 10).until( EC.presence_of_element_located((By.CLASS_NAME, "nh-read__title")) ) - 改用CSS选择器实现多类名定位:如果需要结合所有类名定位,使用CSS选择器,类名之间用
.连接,代码如下:element = WebDriverWait(driver, 10).until( EC.presence_of_element_located((By.CSS_SELECTOR, ".h1.mb-4.font-weight-normal.nh-read__title")) )
- 使用单个唯一类名定位:从元素的多个类中挑选一个唯一的类名,比如
内容的提问来源于stack exchange,提问作者Joey
相关产品推荐
相关产品推荐

