[英]selenium find_elements_by_xpath .get_attribute does not show proper value
我使用以下代碼:
driver = webdriver.Chrome(executable_path = r'G:\Program Files\chromedriver')
driver.get("https://trader.degiro.nl/login/nl?_ga=2.48166567.1674906184.1604234065-1030449807.1604234065#/login")
driver.implicitly_wait(2)
username = driver.find_element_by_id("username")
username.clear()
username.send_keys("not actual info")
password = driver.find_element_by_name("password")
password.clear()
password.send_keys("not actual info")
driver.find_element_by_name("loginButtonUniversal").click()
#top nav elements
elems = driver.find_elements_by_xpath("/html/body/div[1]/div/div[2]/div[1]/div/div/button/span[1]")
for e in elems:
print(e.get_attribute('innerHTML'))
要訪問此元素:
<span data-id="totalPortfolio" data-field="total"
class="uJDZaBS4 " data-positive="true"
title="22.014,54">€ 22.014,54</span>
但它打印: € —
雖然我希望它打印實際存在的內容: € 22.014,54
所以它將值“22.014,54”變成“-”。
如何獲得原始值而不是“-”?
單擊登錄按鈕后,您必須等待頁面加載。 您可以使用time.sleep
來做到這一點:
driver.find_element_by_name("loginButtonUniversal").click()
time.sleep(3)
elems = driver.find_elements_by_xpath("/html/body/div[1]/div/div[2]/div[1]/div/div/button/span[1]")
但是使用time.sleep
並不是一個好的做法。 相反,我建議您使用WebDriverWait
。 以下是您如何使用它:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
driver.find_element_by_name("loginButtonUniversal").click()
elems = WebDriverWait(driver, 10).until(EC.presence_of_all_elements_located((By.XPATH, '/html/body/div[1]/div/div[2]/div[1]/div/div/button/span[1]')))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.