语法错误:未能对“文档”执行“评估”:字符串“//div[@class=”encontrados ngstarinserted']”不是有效的XPath表达式

2024-09-27 09:29:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我得到语法错误

我的代码:

driver.find_element_by_xpath('//div[@class= ‘encontrados ng-star-inserted’]')

我想提取此网站搜索结果中包含的文本:

Website Link


Tags: 代码文本divby网站driverelementfind
3条回答
driver.find_element_by_xpath('//div[@class= ‘encontrados ng-star-inserted’]')

包含属性值的字符“无效”,请使用以下任意字符:

driver.find_element_by_xpath('//div[@class= "encontrados ng-star-inserted"]')   
driver.find_element_by_xpath("//div[@class= 'encontrados ng-star-inserted']")
driver.find_element_by_xpath("//div[@class= \"encontrados ng-star-inserted\"]")
driver.find_element_by_xpath('//div[@class= \'encontrados ng-star-inserted\']')

您的定位器不正确。
请尝试以下方法:

results = driver.find_element_by_css('div.encontrados').text

还是这个

results = driver.find_element_by_xpath('//div[contains(@class,"encontrados")]').text

ng-star-inserted不是一个固定的类名,而div标记名和encontrados类名为该元素提供了固定的唯一标识。
另外,您的问题是'//div[@class= ‘encontrados ng-star-inserted’]'xpath表达式。您正在尝试将'用于外部和内部字符串定义,而应将'用于其中一个,将"用于另一个。也就是说,或者说:

`'//div[@class= "encontrados ng-star-inserted"]'`

还是这个

`"//div[@class= 'encontrados ng-star-inserted']"`

这就是为什么会出现“不是有效的XPath表达式”错误,因为您的语法也不正确。
因此,只需使用我在顶部使用的其中一个表达式:

results = driver.find_element_by_css('div.encontrados').text

还是这个

results = driver.find_element_by_xpath('//div[contains(@class,"encontrados")]').text

卢卡斯

此答案假设您希望从网站中提取文本:

print(driver.find_element(By.XPATH, "//html/body").get_attribute('innerHTML'))

我在您共享的webapp中找不到encontrados ng-star-inserted

但是,如果您想检索网站中间的文本,您可以这样做:

for middle_text in driver.find_elements(By.CSS_SELECTOR, "li.resultado-item"):
    print(middle_text.text)

相关问题 更多 >

    热门问题