首页 > 解决方案 > find_element_by_xpath() 仅通过从 Safari 复制粘贴 Xpath 给我语法错误

问题描述

这是我要获取数据的网站:https ://www.wunderground.com/history/daily/gb/london/EGLC/date/2017-2-10 。在这种情况下,我想采用 2.7 的日平均温度。当我在 safari 中检查元素时,我可以将该行复制为 HTML、Xpath 或属性。由于 selenium 可以通过 Xpath 找到元素,所以我选择了这种方法。但是,当我将其复制并粘贴到

driver.find_element_by_xpath(//*[@id="inner-content"]/div[2]/div/div[3]/div/div/lib-city-history-summary/div/div[2]/table/tbody[1]/tr[3]/td[1]) 

我得到语法错误

检查的图片.

如果有另一种方法可以在不使用 Xpath 的情况下选择元素并且它可以工作,我也可以使用它。谢谢。

标签: pythonseleniumwebdriverinspectionfindelement

解决方案


xpath 需要用引号引起来,这意味着您需要转义双引号:

driver.find_element_by_xpath("//*[@id=\"inner-content\"]/div[2]/div/div[3]/div/div/lib-city-history-summary/div/div[2]/table/tbody[1]/tr[3]/td[1]") 

或将它们更改为单引号:

driver.find_element_by_xpath("//*[@id='inner-content']/div[2]/div/div[3]/div/div/lib-city-history-summary/div/div[2]/table/tbody[1]/tr[3]/td[1]") 

或者,为了更轻松地使用您的复制粘贴,请将您的 xpath 用单引号括起来:

driver.find_element_by_xpath('//*[@id="inner-content"]/div[2]/div/div[3]/div/div/lib-city-history-summary/div/div[2]/table/tbody[1]/tr[3]/td[1]') 

推荐阅读