文本“35”是我有興趣捕獲的。(它總是第 6 個 svg 標簽,然后是第 4 個 g 標簽
My code:
driver = webdriver.Chrome()
driver.get(url)
value = driver.find_element_by_xpath("//*[name()='div' and @id='chartContainer']//*[name()= 'svg' and @style= 'position: absolute; z-index: 6;']//*[name()= 'g' and @font-size= '10pt]")
driver.quit()
print(value)
[網站網址][2]
錯誤資訊: *
InvalidSelectorException: Message: invalid selector: Unable to locate an element with the xpath expression // [name()='div' and @id='chartContainer']// [name()='svg' and @style='position :絕對的;z-index: 6;']// [name()= 'g' and @font-size='10pt] 因為以下錯誤:SyntaxError: Failed to execute 'evaluate' on 'Document': The string '/ / [name()='div' and @id='chartContainer']// [name()='svg' and @style='position: absolute; z-index: 6;']// [name()= 'g' and @font-size='10pt]' 不是有效的 XPath 運算式。(會話資訊:chrome=94.0.4606.81)
uj5u.com熱心網友回復:
'你的xPath表情最后不見了。
value = driver.find_element_by_xpath("//*[name()='div' and @id='chartContainer']//*[name()= 'svg' and @style= 'position: absolute; z-index: 6;']//*[name()= 'g' and @font-size= '10pt']")
但是上面xPath你寫的指向第6個svg標簽和第6個g標簽。
您需要使用以下任何一種xPath來指向第 6 個svg和第 4 個g標簽。
//*[name()='div' and @id='chartContainer']//*[name()= 'svg' and @style= 'position: absolute; z-index: 6;']//*[name()= 'g' ][4]
或者
//*[name()='div' and @id='chartContainer']//*[name()= 'svg'][6]//*[name()= 'g' ][4]
uj5u.com熱心網友回復:
您可以像這樣指向第 6 個 svg 和第 4 個 g 標簽:
((//div[@id='chartContainer']//*[name()='svg'])[6]//*[name()='g'])[4]//*[name()='text']
在代碼中:
value = driver.find_element_by_xpath("((//div[@id='chartContainer']//*[name()='svg'])[6]//*[name()='g'])[4]//*[name()='text']").text
print(value)
請在互動之前進行一些明確的等待。
代碼試用1:
time.sleep(5)
value = driver.find_element_by_xpath("((//div[@id='chartContainer']//*[name()='svg'])[6]//*[name()='g'])[4]//*[name()='text']").text
print(value)
代碼試用2:
value = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "((//div[@id='chartContainer']//*[name()='svg'])[6]//*[name()='g'])[4]//*[name()='text']"))).text
print(value)
進口:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
PS:請檢查dev tools(谷歌瀏覽器)我們是否有唯一的條目HTML DOM。
檢查步驟:
Press F12 in Chrome- >去element節- >做一個CTRL F- >再貼上xpath看看,如果你需要的element是越來越強調與1/1匹配的節點。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/313813.html
