pycharm python селеновый скребок явно не печатает правильное значение - PullRequest
1 голос
/ 30 марта 2020

Я новичок в python, селен, пихарм и т. Д.

Я пытаюсь напечатать значение 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")

enter image description here

Большое спасибо за ваша помощь!

1 Ответ

2 голосов
/ 30 марта 2020

Вам нужно подождать до .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
...