0
這對我來說有點令人頭痛的錯誤。我試圖用硒尋找元素,但偶爾我得到該表達式不是合法表達式錯誤 - 即使我直接從瀏覽器中複製並粘貼XPATH(並轉義所有單引號)。Selenium - 從XPath Helper複製XPATH並粘貼 - 「該表達式不是一個合法的表達式」
爲什麼會這樣呢?我直接從網頁複製XPATH。
感謝您的幫助!
例如。據XPath的助手:這是第一個結果在YouTube搜索標題的XPATH:
/html[@class='guide-pinned show-guide no-focus-outline']/body[@id='body']/div[@id='body-container']/div[@id='page-container']/div[@id='page']/div[@id='content']/div[@class='branded-page-v2-container branded-page-base-bold-titles branded-page-v2-container-flex-width']/div[@class='branded-page-v2-col-container']/div[@class='branded-page-v2-col-container-inner']/div[@class='branded-page-v2-primary-col']/div[@class=' yt-card clearfix']/div[@class='branded-page-v2-body branded-page-v2-primary-column-content']/div[@id='results']/ol[@id='section-list-961996']/li/ol[@id='item-section-948865']/li[1]/div[@class='yt-lockup yt-lockup-tile yt-lockup-video vve-check clearfix yt-uix-tile']/div[@class='yt-lockup-dismissable']/div[@class='yt-lockup-content']/h3[@class='yt-lockup-title']/a[@class='yt-uix-tile-link yt-ui-ellipsis yt-ui-ellipsis-2 yt-uix-sessionlink spf-link ']
我知道這個方法不一定是一般,但我期待它的工作中至少完全匹配的情況。
在Python中,我的代碼是:
first_result_xpath = #the XPATH above with single quotes escaped
try:
first_result_element = driver.find_element(By.XPATH, first_result_xpath)
except:
print "Exception: Could not locate element"
你能提供可再現的例子嗎?謝謝。 – alecxe
當然,會做。一秒 – newbie
發佈你正在處理的實際'html'通常是個好主意。這使調試更容易。另一方面,使用瀏覽器從網頁複製xpath始終不是個好主意,因爲doc結構可以很容易地更改並且使您所複製的xpath無效 – Saifur