Как заставить веб-драйвер селена на python найти элементы на селекторах css следующей страницы? - PullRequest
0 голосов
/ 05 апреля 2020

Я пытаюсь получить селен в Интернете, чтобы очистить первый абзац вики-страниц с помощью CSS селекторов.

Когда я запускаю этот код, кажется, что он выбирает только те из исходной веб-страницы

https://en.wikipedia.org

, а не то, что я ищу, в данном случае «кошки».

Любая помощь с этим будет быть классным!


browser = webdriver.Firefox(executable_path='D:\Import Files that I also want backed up\Jupyter Notebooks\Python Projects\Selenium\driverss\geckodriver.exe')
browser.get('https://en.wikipedia.org')

search_elem = browser.find_element_by_css_selector('#searchInput')

search_elem.send_keys('cats')
search_elem.submit()


results_elem = browser.find_element_by_css_selector('p')

print(results_elem.text)

output:

Adventure Time is an American fantasy animated television series created .....

1 Ответ

1 голос
/ 05 апреля 2020

Чтобы получить первый текст абзаца со страницы вики. Введите WebDriverWait() и visibility_of_element_located () и следующий селектор css.

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

browser = webdriver.Firefox(executable_path='D:\Import Files that I also want backed up\Jupyter Notebooks\Python Projects\Selenium\driverss\geckodriver.exe')
browser.get('https://en.wikipedia.org')
search_elem = browser.find_element_by_css_selector('#searchInput')
search_elem.send_keys('cats')
search_elem.submit()
results_elem=WebDriverWait(browser,10).until(EC.visibility_of_element_located((By.CSS_SELECTOR,"div.mw-parser-output p:nth-of-type(3)")))
print(results_elem.text)
...