Не могу поверить, что никто еще не упомянул Барбару Лисков. Когда она разработала CLU в 1974 году, она столкнулась с этой же проблемой терминологии, и она придумала термин , разделив (также известный как вызов путем совместного использования объектов и вызов по объекту ) для этого конкретного случая «вызов по значению, где значение является ссылкой».
Поле ввода #popupDatepicker
имеет атрибут readonly
. Это означает, что вы не можете отправить ключи к нему.
Попробуйте ниже выбрать необходимую дату
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait as wait
from selenium import webdriver
driver = webdriver.Firefox()
driver.get('https://www.nccpl.com.pk/en/market-information/fipi-lipi/lipi-sector-wise-daily')
picker = wait(driver, 10).until(EC.element_to_be_clickable((By.ID, 'popupDatepicker')))
driver.execute_script('arguments[0].scrollIntoView();', picker)
picker.click()
wait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, '[title="Select Tuesday, Jan 1, 2019"]'))).click()
Если вам нужно выбрать месяц или год, вам нужно обработать раскрывающийся список select
:
from selenium.webdriver.support.ui import Select
select_month = Select(wait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, '[title="Change the month"]'))))
select_month.select_by_visible_text('April')
select_year = Select(wait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, '[title="Change the year"]'))))
select_year.select_by_visible_text('2018')