Поиск xpath для нажатия и поиска текста - PullRequest
0 голосов
/ 17 октября 2019

Ошибка: NoSuchElementException: нет такого элемента: невозможно найти элемент: {"method": "xpath", "selector": "// td [@class = 'C ($ primaryColor) W (51%)'] "} (информация о сеансе: chrome = 77.0.3865.120)

Мой код указан ниже:

from selenium import webdriver

from selenium.webdriver.common.keys import Keys


driver = webdriver.Chrome('/Users/ryanyee/Desktop/Python Code/Selenium/Launch 
Chrome/chromedriver')
driver.get('https://finance.yahoo.com')
search_box = driver.find_element_by_id('yfin-usr-qry')
search_box.send_keys('GOOG')
search_box.submit()

name = driver.find_element_by_xpath("//td[@class='C($primaryColor) W(51%)']").text()

Моя проблема заключается в том, что он выдает ошибку, когда я пытаюсь очистить текст для имени.

Кроме того, у меня возникают проблемы при попытке нажать кнопку "Исторические данные"

Этосайт, который я пытаюсь удалить с 'https://finance.yahoo.com/quote/GOOG?p=GOOG'

Пожалуйста, дайте мне знать, что я делаю неправильно! Я застрял на несколько дней!

Ответы [ 2 ]

1 голос
/ 17 октября 2019

Попробуйте добавить оператор ожидания после search_box.submit ()

from selenium.webdriver.support.ui import WebDriverWait

WebDriverWait(driver, 10).until(
    EC.presence_of_element_located(By.XPATH, "//td[@class='C($primaryColor) W(51%)']"))
0 голосов
/ 17 октября 2019

Вам нужно подождать после отправки.

search_box.submit()

name = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//td[@class='C($primaryColor) W(51%)']"))).text
print(name)

#this is for click Historical Data
driver.find_element_by_link_text("Historical Data").click()

После импорта:

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...