как получить текст, перемещая курсор с помощью selenium?

#python #selenium #web-scraping

#python #селен #веб-очистка

Вопрос:

Я пытаюсь получить текст из каждой строки на следующем графике.

введите описание изображения здесь

Вот что я попробовал:

 driver = webdriver.Chrome('d:/chromedriver.exe')
driver.get('https://dph.georgia.gov/covid-19-daily-status-report')
frame = driver.find_element_by_css_selector('#covid19dashdph > iframe')
driver.switch_to.frame(frame)

element = driver.find_element_by_xpath('//*[@id="root"]/div/div[3]/div[4]/div/div[4]/div/div')
print(element.text) # return ''

# action = ActionChains(driver)
# action.move_by_offset(1, 1)
  

Мой вопрос:

  1. как получить текстовое значение, потому что я видел текст на исходной странице
  2. Как перемещать курсор мыши на одну строку за другой, чтобы получить следующий номер ежедневного обращения.

Ответ №1:

Я просто нажал на тег svg и напечатал его значение, которое было в теге на сайте.

 driver.get('https://dph.georgia.gov/covid-19-daily-status-report')
frame=WebDriverWait(driver, 30).until(EC.presence_of_element_located((By.CSS_SELECTOR, '#covid19dashdph > iframe')))
driver.switch_to.frame(frame)

svg=WebDriverWait(driver, 30).until(EC.presence_of_element_located((By.CSS_SELECTOR, " div.MuiBox-root.jss326 > div > svg")))
svg.click()
element=WebDriverWait(driver, 30).until(EC.presence_of_element_located((By.CSS_SELECTOR, "div.MuiBox-root.jss326 > div > div")))
print(element.text) 
  

Импорт

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

Выводит

07 июня 20 подтвержденных случаев 524 7-дневная скользящая средняя 720,7

HTML-тег состоит из:

 <div class="c3-tooltip-container" style="position: absolute; pointer-events: none; display: none; top: 529.5px; left: 74.5px;">
<table class="c3-tooltip">
<tbody>
<tr><th colspan="2">07Jun20</th></tr>
<tr class="c3-tooltip-name--Confirmed-Cases">
<td class="name"><span style="background-color:#33a3ff"></span>Confirmed Cases</td>
<td class="value">524</td></tr>
<tr class="c3-tooltip-name--37 -day-Moving-Average">
<td class="name"><span style="background-color:#ffcc32"></span>7-day Moving Average</td>
<td class="value">720.7</td>
</tr></tbody></table></div>
  

Комментарии:

1. Большое спасибо, и я многому научился у вас! Два последующих вопроса: 1) зачем нажимать тег ‘svg’, чтобы активировать область графика?; 2) как мне перебирать все столбцы и получать числа по дням?

2. Тег внизу нуждается в щелчке или перемещении, и он повторно заполняет его собственное значение. я просто щелкнул svg, чтобы сделать демонстрационное значение.