我想得到這個元素的定位器 (5,126, 601) 但似乎無法正常得到它。
我認為它必須將滑鼠懸停在元素上并嘗試獲取 xpath,但我仍然無法將滑鼠懸停在其中,因為它是 SVG 元素。有人知道正確獲取定位器的方法嗎?
這是網站的鏈接:
uj5u.com熱心網友回復:
好吧,這個元素只能通過將滑鼠懸停在圖表上來更新。
這是此元素的唯一 XPath 定位器:
"//*[name()='text']//*[name()='tspan' and(contains(@style,'bold'))]"
整個 Selenium 命令可以是:
total_text = driver.find_element(By.XPATH, "//*[name()='text']//*[name()='tspan' and(contains(@style,'bold'))]").text
這也可以用這個 CSS Selector: 來完成text tspan[style*='bold'],所以 Selenium 命令可以是
total_text = driver.find_element(By.CSS_SELECTOR, "text tspan[style*='bold']").text
好吧,CSS 選擇器看起來要短得多:)
uj5u.com熱心網友回復:
依次單擊每個節點將導致隨附的文本放置在highcharts-label元素中。然后可以檢索此文本并將季度(第 1 個 tspan)鏈接到您想要的總值(第 4 個 tspan)。
url="https://fundingsocieties.com/progress"
driver.get(url)
chart = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.XPATH, "//div[@data-highcharts-chart='0']"))
)
markers = chart.find_elements(By.XPATH, "//*[local-name()='g'][contains(@class,'highcharts-markers')]/*[local-name()='path']")
for m in markers:
m.click()
try:
element = WebDriverWait(driver, 2).until(
EC.presence_of_element_located((By.XPATH, "//*[local-name()='g'][contains(@class,'highcharts-label')]/*[local-name()='text']"))
)
tspans = element.find_elements(By.XPATH, "./*[local-name()='tspan']")
if len(tspans) > 3:
print ("%s = %s" % (tspans[0].text, tspans[3].text))
except TimeoutException:
pass
輸出如下:
Q2-2015 = 2
Q3-2015 = 12
....
Q1-2022 = 5,076,978
Q2-2022 = 5,109,680
Q3-2022 = 5,122,480
Q4-2022 = 5,126,601
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/529701.html
下一篇:硒錯誤
