从 Table 获取 TD 元素

Get TD element from Table

我正在从网页中获取债务与股权比率的值。

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC
options = Options()
options.add_argument('--ignore-certificate-errors')
options.page_load_strategy = 'eager'    
driver = webdriver.Chrome(ChromeDriverManager().install(),options=options)
wait = WebDriverWait(driver, 20)
driver.get("https://www.moneycontrol.com")

inputElement=wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, '#form_topsearch>.txtsrchbox.FL'))) 
inputElement.send_keys('3IINFOTECH',Keys.ENTER)
wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, '#proceed-button'))).click()

driver.implicitly_wait(30)
print("---")
try:
    driver.find_element_by_link_text("Financials").click()
    driver.find_element_by_link_text("Ratios").click()
    driver.find_element_by_link_text("Leverage Ratios").click()
    elem = driver.find_element_by_xpath("//*[@id='body']/table//thead/tbody/tr[1]/td[2]")
    print(elem.text)
except e:
    print(e)

我无法获取最新(2020 年 3 月)的债务权益比 (x) 值,然后单击 Standalone 并获取相同的值。

请找到上述问题的工作代码。根据您的需要增强代码。

import time

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

options = Options()
options.add_argument('--ignore-certificate-errors')
options.add_argument('--start-maximized')
options.page_load_strategy = 'eager'
driver = webdriver.Chrome(options=options)
wait = WebDriverWait(driver, 20)
driver.get("https://www.moneycontrol.com")

inputElement = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, '#form_topsearch>.txtsrchbox.FL')))
inputElement.send_keys('3IINFOTECH', Keys.ENTER)
wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, '#proceed-button'))).click()

driver.implicitly_wait(30)
print("---")
try:
    driver.find_element_by_link_text("Financials").click()
    driver.find_element_by_link_text("Ratios").click()
    driver.find_element_by_link_text("Leverage Ratios").click()
    time.sleep(2)
    elem = driver.find_element_by_xpath(
        "//*[@id=\"consolidated\"]/descendant::div[text()=\"Debt to Equity (x)\"]/parent::td/following-sibling::td[1]")
    print("Consolidated : " + elem.text)

    driver.find_element_by_link_text("Standalone").click()
    driver.find_element_by_link_text("Ratios").click()
    driver.find_element_by_link_text("Leverage Ratios").click()
    time.sleep(5)
    elem = driver.find_element_by_xpath(
        "//*[@id=\"standalone\"]/descendant::div[text()=\"Debt to Equity (x)\"]/parent::td/following-sibling::td[1]")
    print("Standalone : " + elem.text)
except:
    print("Error Error Error")

如果问题已解决,请标记为答案。