【发布时间】:2019-11-16 23:25:20
【问题描述】:
我的代码登录到我的 Fidelity 帐户,然后找到一个元素。我能够找到 Selenium 对象,但我想提取其中包含我的投资组合余额的文本。当我打印对象时,代码工作正常,但我无法从中获取文本或余额。
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
def fidelity_check():
options = webdriver.ChromeOptions()
options.add_argument("start-maximized")
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option("detach", True)
# options.add_experimental_option('useAutomationExtension', False)
driver = webdriver.Chrome(chrome_options=options, executable_path=r'C:\Users\Notebook\Documents\chromedriver.exe')
driver.get("https://www.fidelity.com/")
WebDriverWait(driver, 30).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input#userId-input"))).send_keys(
"MYUSERID")
driver.find_element_by_css_selector("input#password").send_keys("MYPASSWORD")
driver.find_element_by_css_selector("button#fs-login-button").click()
try:
element_present = EC.presence_of_element_located((By.XPATH, '// *[ @ id = "tabContentSummary"]'))
WebDriverWait(driver, 10).until(element_present)
print(element_present)
except TimeoutError:
print("Page Not Loaded.")
这是结果: selenium.webdriver.support.expected_conditions.presence_of_element_located 对象位于 0x035EFE10
这是检查元素的结果:
<span class="ledger--section-total js-total-balance-value">$X.XX</span>
我尝试了以下方法,但它不起作用。
element_present.text()
# And I tried:
element_present.text
都不行。
【问题讨论】:
-
你试过
element_present.innerHTML吗? -
能否提供完整的DOM?
-
@Arn,我刚试了一下,没用。我只是为整个代码编辑了它。也许称它为我的 XPATH 不是正确的方法,因为我不能使用 .text 或 .innerHTML 方法。
-
@Rock,我刚刚发布了完整的代码。