find_element_by_xpath() 仅通过从 Safari 复制粘贴的 Xpath 给我语法错误

find_element_by_xpath() gives me Syntax Error by only copy a pasting Xpath from Safari

这是我要取数据的网站: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]) 

我收到语法错误

.

如果有另一种方法 select 不使用 Xpath 的元素并且它有效,我也可以使用 it.Thank 你。

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]') 

那是因为它需要作为一个字符串。添加引号,如下面的代码所示

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]')