Выбор ребенка с Selenium с помощью Python - PullRequest
1 голос
/ 30 марта 2020

Является ли эта часть кода верной?

result2.find_element_by_xpath("./a[3]").click()

Я хочу получить третий компонент 'a' из 'div'

Я испытываю эту ошибку:

selenium.common.exceptions.NoSuchElementException: Сообщение: нет такого элемента: невозможно найти элемент: {"method": "xpath", "selector": "./ a [3]"} (информация о сеансе : chrome = 80.0.3987.149)

Это часть кода, который включает сегмент:

logear = browser.find_element_by_id('gs_hdr_tsi')
logear.click()
logear.send_keys('Connexins and pannexins in Alzheimer’s disease')
logear.send_keys(webdriver.common.keys.Keys.ENTER)
time.sleep(0.3)
result2 = browser.find_element_by_class_name('gs_fl')
result2.find_element_by_xpath("./a[3]").click() '''This line gives the error'''

1 Ответ

1 голос
/ 30 марта 2020

Попробуйте добавить больше времени time.sleep(3) или дождитесь элемента.

element = WebDriverWait(browser, 30).until(
    ec.element_to_be_clickable((By.XPATH, "./a[3]")))
element.click()

За комментарий

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

chrome_browser = webdriver.Chrome()
chrome_browser.get("https://scholar.google.com/")

Search_input = WebDriverWait(chrome_browser, 30).until(
    ec.element_to_be_clickable((By.ID, "gs_hdr_tsi")))

Search_input.send_keys("Connexins and pannexins in Alzheimer’s disease" + Keys.RETURN)

try:
    chrome_browser.implicitly_wait(10)
    cited_by_link = chrome_browser.find_element_by_partial_link_text("Cited by")
    cited_by_link.click()
except Exception as e:
    print(e)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...