【问题标题】:pycharm python selenium scraper apparently not printing correct valuepycharm python selenium scraper 显然没有打印正确的值
【发布时间】:2020-07-10 08:40:33
【问题描述】:

我是 python、selenium、pycharm 等的新手。

我正在尝试在网站上打印 a 的值(在撰写本文时,该值是 6320 )。代码没有给出错误,但它什么也没打印。

正如您在屏幕截图中看到的,当我调试并将鼠标悬停在变量上时,它显示 6320,这是我正在寻找的值。

我做错了什么?

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support.expected_conditions import presence_of_element_located

# This example requires Selenium WebDriver 3.13 or newer
with webdriver.Chrome() as driver:
    wait = WebDriverWait(driver, 10)
    driver.get("https://ici.radio-canada.ca/info/2020/coronavirus-covid-19-pandemie-cas-carte-maladie-symptomes-propagation/")

    driver.implicitly_wait(5)

    items = driver.find_element_by_xpath('//*[@id="app"]/div[2]/div[3]/div[3]/div[1]/table/tbody/tr[2]/td[1]/span[2]').text


    print(items)
    print("hello")

非常感谢您的帮助!

【问题讨论】:

    标签: python selenium selenium-webdriver pycharm selenium-chromedriver


    【解决方案1】:

    你需要等到.visibility_of_element_located,然后使用这个xpath//td[contains(., "Total*")]//span[last()],虽然你的xpath也可以,但它是一个绝对的xpath,很容易改变。

    with webdriver.Chrome() as driver:
        wait = WebDriverWait(driver, 10)
        driver.get("https://ici.radio-canada.ca/info/2020/coronavirus-covid-19-pandemie-cas-carte-maladie-symptomes-propagation/")
        items = wait.until(EC.visibility_of_element_located((By.XPATH, '//td[contains(., "Total*")]//span[last()]'))).text
        print(items)
        print("hello")
    

    导入后:

    from selenium.webdriver.support import expected_conditions as EC
    

    【讨论】:

    • 效果很好,谢谢!我不知道您可以使用 Xpath ( //span[last()] ) 选择这样的项目 非常感谢,祝您有美好的一天!
    猜你喜欢
    • 2015-08-07
    • 1970-01-01
    • 1970-01-01
    • 2017-09-04
    • 1970-01-01
    • 1970-01-01
    • 2020-02-01
    • 1970-01-01
    • 2019-11-29
    相关资源
    最近更新 更多