2017-08-15 25 views
0

這是我的硒代碼如下。Python Selenium搜索[object Text]

sourcesearch = driver.find_element_by_xpath('//*[@id=\"Table_Exame\"]/tbody/tr[1]/td/text()[1]') 

,其結果是 -

selenium.common.exceptions.InvalidSelectorException:消息:無效 選擇器:XPath表達式 「// * [@ ID =」 Table_Exame」的結果]/tbody/tr [1]/td/text()[1]「是:[object Text]。 它應該是一個元素。

會有任何方法可以通過Selenium檢索[object Text]嗎? 任何形式的幫助,將不勝感激。

除Xpath以外的任何內容都不可用,因爲該網站未爲文本添加任何標籤。 此外,對不起,因爲它只是一個僅限會員的網站而無法包含網站地址。

+0

您可以嘗試使用'sourcesearch = driver.find_element_by_xpath('// * [@ id = \'Table_Exame \「]/tbody/tr [1]/td).text'獲取文本內容,然後將其解析爲提取所需的子字符串。或者像[這裏]一樣執行JavaScript(https://stackoverflow.com/questions/45563475/how-to-locate-a-name-using-xpath-out-of-three-items/45564733#45564733) – Andersson

+0

是的,這似乎是道路。謝謝 – angrypig7

回答

0

由於XPath表達式終止於text()[whatever],因此它將解析爲文本容器,而不是HTML元素(或列表)。

提示:在瀏覽頁面時,在Firefox控制檯中用$x(some_xpath_expression)嘗試XPath表達式。

也許你應該編輯你的問題,並添加周圍的HTML摘錄,並準確描述你的期望。

+0

嗯。我認爲通過BeautifulSoup解析整個HTML會更好。 周圍的HTML本身只是。這就是爲什麼我沒有發佈HTML源代碼。 – angrypig7

+0

如果內容不是使用JS(React,Angular,...)構建的,使用Beautifulsoup和lxml處理會更快,如果您要抓取大量頁面,此外調試將更容易。 – glenfant

+0

謝謝,我現在在嘗試BeautifulSoup。我只是不喜歡導入太多模塊的想法。 – angrypig7