簡體   English   中英

從yatra.com中的日期選擇器中選擇日期

[英]Select date from date picker in yatra.Com

嗨,我是python和Selenium的新手。 我是出於興趣而學習它。 我的問題是我想在下面的網站中選擇出發日期和到達日期。 https://www.yatra.com/我需要使用selenium的python中的代碼,任何人都可以幫助我。 如果需要,您可以使用任何其他庫。

感謝您的協助。

  1. 提出相關的定位器策略以識別日期選擇器和日期。 使用關聯的find_element函數實現
  2. 點擊“起源”日期選擇器
  3. 使用Explicit Wait等待直到出現可用的日期列表(您需要做為日期列表,因為單擊日期選擇器不會觸發頁面重新加載,並且如果您嘗試立即單擊所需的日期-日期不會在那里,請查看如何使用Selenium通過AJAX技術測試Web應用程序以了解更多詳細信息)
  4. 選擇所需的日期(或隨機選擇一個)
  5. 點擊所需的日期
  6. 再次使用“顯式等待日期”列表消失
  7. 對“目標”日期選擇器重復步驟2-6

示例代碼:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions
import random

driver = webdriver.Chrome("c:\\path\\to\\chromedriver.exe")  
driver.maximize_window()
driver.get('https://www.yatra.com')

wait = WebDriverWait(driver, 10)

departure = wait.until(
    expected_conditions.presence_of_element_located((By.XPATH, "//input[@name='flight_origin_date']"))).click()

wait.until(expected_conditions.visibility_of_any_elements_located((By.XPATH,"//td[@data-date]")))
dates = driver.find_elements_by_xpath("//td[@data-date]")
driver.execute_script("arguments[0].click()",random.choice(dates))
wait.until(expected_conditions.invisibility_of_element_located((By.XPATH,"//td[@data-date]")))
destination = wait.until(
    expected_conditions.presence_of_element_located((By.XPATH, "//input[@name='flight_destination_date']"))).click()

wait.until(expected_conditions.visibility_of_any_elements_located((By.XPATH,"//td[@data-date]")))
dates = driver.find_elements_by_xpath("//td[@data-date]")
random.choice(dates).click()
wait.until(expected_conditions.invisibility_of_element_located((By.XPATH,"//td[@data-date]")))

driver.quit()

上面的代碼假定使用Chrome瀏覽器和ChromeDriver ,但是您可以使用其他選擇的瀏覽器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM