Я пытаюсь ввести диапазон дат, используя тип переменной даты и команду .send_keys("inputDate"), где "inputDate" — это строковое значение, например "2020-01-02", но даже если код работает правильно , введенное значение даты полностью отличается от желаемой даты.
Я пытался переключить типы переменных с Str на дату, используя «from datetime import datetime» или «import date», и я надеялся, что это решит проблему, но этого не произошло. Я также непосредственно проверил поле ввода на веб-сайте, которое представляет собой следующую строку:
а еще это XPath:
//*[@id="__next"]/div[2]/div[2]/div[2]/div[1]/div[3]/div[2]/div[2]/div[3]/div[1]/div[1]/input
и проверил правильность порядка ввода (день-месяц-год). Все равно не помогло.
Кода ошибки нет, просто вводится неверная дата.
Вот мой код:
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
import time
from datetime import date
opt = webdriver.ChromeOptions()
opt.add_argument("--start-maximized")
opt.add_argument("--enable-javascript")
prefs = {"download.default_directory": "Downloads"} # Change this to your desired directory
opt.add_experimental_option("prefs", prefs)
opt.add_experimental_option("excludeSwitches", ["disable-popup-blocking"])
userAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36'
opt.add_argument(f'user-agent={userAgent}')
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=opt) # 16
time.sleep(2)
driver.execute_cdp_cmd("Page.removeScriptToEvaluateOnNewDocument", {"identifier":"1"})
driver.get(r'https://www.investing.com/portfolio');
assert 'Portfolio & Watchlist - Investing.com' in driver.title
print('Opened site successfully')
username = WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.ID, 'loginFormUser_email')))
username.send_keys("", 'my Email')
print('Entered UserID')
password = WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.ID, 'loginForm_password')))
password.send_keys("", 'my Password')
print('Entered Password')
driver.find_element(By.XPATH,#Login
'//*[@id="signup"]/a').click()
links = ['https://www.investing.com/commodities/a ... rical-data',
'https://www.investing.com/commodities/c ... cid=959211',
'https://www.investing.com/commodities/s ... rical-data',
'https://www.investing.com/equities/stee ... rical-data',
'https://www.investing.com/commodities/i ... rical-data'
]
for link in links:
print(link)
driver.get(link)
driver.find_element(By.XPATH,
'//*[@id="__next"]/div[2]/div[2]/div[2]/div[1]/div[2]/div[2]/div[2]/div[1]').click()
driver.find_element(By.XPATH,
'//*[@id="__next"]/div[2]/div[2]/div[2]/div[1]/div[2]/div[2]/div[2]/div[2]/div[1]/div[1]/input').send_keys('02-05-2022')
driver.find_element(By.XPATH,
'//*[@id="__next"]/div[2]/div[2]/div[2]/div[1]/div[2]/div[2]/div[2]/div[2]/div[2]').click()
driver.find_element(By.XPATH, '//*[@id="__next"]/div[2]/div[2]/div[2]/div[1]/div[2]/div[2]/div[2]/a/div').click()
Подробнее здесь: https://stackoverflow.com/questions/785 ... esting-com