【问题标题】:How to get time from website on selenium?如何从硒网站上获取时间?
【发布时间】:2022-01-15 09:52:39
【问题描述】:

我想从https://www.hko.gov.hk/en/gts/time/clock_e.html获取时间

目前我的代码是:

timeDriver.get("https://www.hko.gov.hk/en/gts/time/clock_e.html")
HKTime = WebDriverWait(timeDriver,3).until(EC.presence_of_element_located((By.XPATH, '/html/body/div[2]/div[2]/div/div/div[4]/div/div[2]/div/div[3]'))).text
print(HKTime)

但是,它什么也没打印。任何想法为什么?

【问题讨论】:

    标签: python selenium selenium-webdriver


    【解决方案1】:

    使用visibility_of_element_located() 代替presence_of_element_located() 并跟随css selector 来识别元素。

    driver.get("https://www.hko.gov.hk/en/gts/time/clock_e.html")
    
    print(WebDriverWait(driver,5).until(EC.visibility_of_element_located((By.CSS_SELECTOR, 'div#hkoClock_Time'))).get_attribute("innerText"))
    print(WebDriverWait(driver,5).until(EC.visibility_of_element_located((By.CSS_SELECTOR, 'div#hkoClock_Time'))).text)
    

    或者你也可以关注xpath

    driver.get("https://www.hko.gov.hk/en/gts/time/clock_e.html")
    
    print(WebDriverWait(driver,5).until(EC.visibility_of_element_located((By.XPATH, '//div[@id="hkoClock_Time"]'))).get_attribute("innerText"))
    print(WebDriverWait(driver,5).until(EC.visibility_of_element_located((By.XPATH, '//div[@id="hkoClock_Time"]'))).text)
    

    【讨论】:

      【解决方案2】:

      要定位 可见 元素而不是 presence_of_element_located(),您需要为 visibility_of_element_located() 引入 WebDriverWait,您可以使用以下任一 Locator Strategies

      • 使用 CSS_SELECTORget_attribute("textContent"):

        driver.get("https://www.hko.gov.hk/en/gts/time/clock_e.html")
        print(WebDriverWait(driver, 7).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "div#hkoClock_Time"))).get_attribute("textContent"))
        
      • 使用 XPATHtext 属性:

        driver.get("https://www.hko.gov.hk/en/gts/time/clock_e.html")
        print(WebDriverWait(driver, 7).until(EC.visibility_of_element_located((By.XPATH, "//div[@id='hkoClock_Time']"))).text)
        
      • 控制台输出:

        am 07:14:03
        
      • 注意:您必须添加以下导入:

        from selenium.webdriver.support.ui import WebDriverWait
        from selenium.webdriver.common.by import By
        from selenium.webdriver.support import expected_conditions as EC
        

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-11-23
        • 1970-01-01
        • 2023-02-01
        • 2013-06-24
        • 1970-01-01
        • 1970-01-01
        • 2016-02-26
        • 1970-01-01
        相关资源
        最近更新 更多