我想從網站https://idsc.cidadessustentaveis.org.br/rankings提取滑鼠懸停在元素上出現的文本。感興趣的文本的一個特定示例是文本“Erradicacao da pobreza Pontuacao:44,47”,它出現在位于“Desempenho por ODS”列中的第一個條上。我已經嘗試了下面的代碼,但它回傳空白文本‘’
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("https://idsc.cidadessustentaveis.org.br/rankings")
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
wait = WebDriverWait(driver, 20)
desired_elem = wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, '.SdgPerformanceBar__Block-sc-1yl1q71-2.fBQLcJ')))
我列印了提取的元素的屬性,確認我已成功到達目標元素。
print(desired_elem.get_attribute('outerHTML'))
哪個回傳:
<div style="width:2.62%" ></div>
請注意,通過檢查 Firefox 中的元素,我發現該元素沒有innerHTML.
然后我嘗試使用提取文本,desired_elem.text但我得到一個空白‘’
我還嘗試了下面的代碼,它也回傳了一個空白。
from selenium.webdriver.common.action_chains import ActionChains
elem = driver.find_element(By.CSS_SELECTOR, '.SdgPerformanceBar__Block-sc-1yl1q71-2.fBQLcJ');
actions = ActionChains(driver)
actions.move_to_element(elem)
actions.move_to_element(elem).perform()
呼叫elem.text回傳''
uj5u.com熱心網友回復:
你已經接近解決方案了。
將滑鼠懸停在這些元素上時會出現工具提示。
這些工具提示將根據您懸停的元素呈現不同的文本。
在這里我使用了你的代碼,只是添加了工具提示
from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
options = Options()
options.add_argument("start-maximized")
webdriver_service = Service('C:\webdrivers\chromedriver.exe')
driver = webdriver.Chrome(options=options, service=webdriver_service)
wait = WebDriverWait(driver, 10)
actions = ActionChains(driver)
tooltip1 = "div[role='tooltip'] .MuiTypography-root.MuiTypography-body1"
tooltip2 = "div[role='tooltip'] .MuiTypography-root.MuiTypography-body2"
url = "https://idsc.cidadessustentaveis.org.br/rankings"
driver.get(url)
desired_elem = wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, '.SdgPerformanceBar__Block-sc-1yl1q71-2.fBQLcJ')))
actions.move_to_element(desired_elem).perform()
tt1_text = wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, tooltip1))).text
tt2_text = wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, tooltip2))).text
print(tt1_text)
print(tt2_text)
輸出是:
Erradica??o da pobreza
Pontua??o: 44,47
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/529211.html
標籤:Python硒硒网络驱动程序css 选择器网络驱动程序等待
