Я изучаю веб-автоматизацию, и в качестве контрольного примера я попытался найти рейс в компании «Экспедиа» и передать значения даты в указанные текстовые поля вылета / возврата. Для первого текстового поля все в порядке, и send_keys работает как положено, но по какой-то причине для второго (или текстового поля даты возврата) send_keys, кажется, передает как предыдущую дату, так и дату, которую я хочу, чтобы она прошла второе время вокруг Если вы запустите мой код, понятно, что произойдет, но вот и картинка:
Я не знаю, просто ли это из-за способ, которым у Expeda есть свои текстовые поля, или если я что-то напутал в своем программировании из-за моей неопытности, но помощь будет принята с благодарностью.
Вот мой код:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time
driver = webdriver.Chrome(executable_path='E:\Webdrivers\chromedriver.exe')
driver.implicitly_wait(5)
driver.get('https://www.expedia.com/')
driver.maximize_window()
driver.find_element_by_id('tab-flight-tab-hp').click() #clicks flight button
#driver.find_element(By.ID, 'tab-flight-tab-hp').click() can also be used to click flight button
time.sleep(2)
driver.find_element_by_id('flight-origin-hp-flight').send_keys('NYC') #Origin
driver.find_element_by_id('flight-destination-hp-flight').send_keys('Toronto') #Destination
driver.find_element_by_id('flight-departing-hp-flight').clear()
driver.find_element_by_id('flight-departing-hp-flight').send_keys('12/28/2020') #Departing
time.sleep(1)
driver.find_element_by_id('flight-returning-hp-flight').clear()
driver.find_element_by_id('flight-returning-hp-flight').send_keys("01/15/2021")
time.sleep(5)
driver.find_element_by_xpath('//*[@id="gcw-flights-form-hp-flight"]/div[8]/label/button').click()