#python #selenium #selenium-webdriver
#питон #селен #selenium-webdriver
Вопрос:
Я новичок в использовании Selenium, но я просмотрел достаточно видео и прочитал достаточно статей, чтобы понять, что чего-то не хватает. Я пытаюсь получить значения из TradingView, но проблема, с которой я сталкиваюсь, заключается в том, что я просто не могу найти ни один из элементов, ни с помощью Xpath, ни Css. Я пошел дальше и попытался выполнить простой тест элемента видимости, как показано в приведенном ниже коде, и, к моему удивлению, время ожидания истекло.
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
# Stops the UI interface (chrome browser) from popping up
# chrome_options.add_argument("--headless")
driver = webdriver.Chrome(executable_path='c:sechromedriver.exe', options=chrome_options)
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 import expected_conditions as EC
from selenium.common.exceptions import TimeoutException
import time
driver.get("https://www.tradingview.com/chart/")
timeout = 20
try:
WebDriverWait(driver, timeout).until(EC.visibility_of_element_located((By.XPATH, "/html/body/div[1]")))
print("Page loaded")
except TimeoutException:
print("Timed out waiting for page to load")
driver.quit()
Я попытался нажать на одну из кнопок диаграммы, используя следующее, но это тоже не сработало. Я заметил, что, в отличие от многих других веб-сайтов для Tradingview, элементы не имеют имен и не генерируют относительный путь (только полный) с использованием Xpath.
driver.find.element_by_xpath('/html/body/div[2]/div[5]/div/div[2]/div/div/div/div/div[4]').click()
Любая помощь приветствуется!
Комментарии:
1. можете ли вы показать скриншот того, что вы хотите на странице? или HTML-код
Ответ №1:
Я думаю, что должна быть проблема с xpath. Когда я пытаюсь нажать кнопку AAPL, она работает у меня. Xpath, который я использовал, это:
(//div[contains(text(),'AAPL')])[1]
Если вы точно укажете, какой элемент нужно щелкнуть, я попробую.
А также быть знакомым с концепцией фреймов, потому что на сайтах такого типа много фреймов.