如何使用Python和Selenium定位含指定文本与title的元素
解决方法
错误原因分析
你之前的代码存在两个核心问题:
- 第一个XPath错误地将目标元素定位为
div,但实际目标是<a>标签;同时用text()="RTX 3080"匹配元素文本,而"RTX 3080"是在title属性里,不是元素的文本内容。 - 第二个XPath是精确匹配
title="6950",和你需要筛选"title包含RTX 3080"的需求完全不符。
正确的定位代码
要筛选出**class为js-sku-link sku-link且title属性包含"RTX 3080"**的<a>元素,使用XPath的contains()函数匹配属性内容即可,以下两种写法都可行:
写法一:结合class和title属性筛选
driver.find_element_by_xpath('//a[@class="js-sku-link sku-link" and contains(@title, "RTX 3080")]').text
写法二:结合data-e2e-testid和title属性筛选(更精准)
因为目标元素带有唯一标识属性data-e2e-testid="sku-price-link",可以用这个属性进一步缩小范围:
driver.find_element_by_xpath('//a[@data-e2e-testid="sku-price-link" and contains(@title, "RTX 3080")]').text
内容的提问来源于stack exchange,提问作者user15235972
相关产品推荐
相关产品推荐

