大家好,我正在嘗試在以下網站 booking.com 上使用 python 練習 selenium,因為我想單擊下個月可以選擇的元素。我試圖為它撰寫 xpath,在 chrome 控制臺上檢查時它甚至是有效的。但是它沒有單擊下面的下一個箭頭是快照,我想單擊下一個箭頭和控制臺圖片供您參考。你能告訴我我哪里錯了嗎

from selenium import webdriver
import time
from selenium.webdriver.common.by import By
driver = webdriver.Chrome(executable_path='C:\chromedriver')
driver.get("https://www.booking.com/")
time.sleep(4)
driver.maximize_window()
time.sleep(2)
#place to add the destination location
driver.find_element(By.XPATH, "//input[@placeholder='Where are you going?']").send_keys("Jaisalmer")
time.sleep(5)
#location name select
driver.find_element(By.XPATH, ".//*[contains(@data-label,'Suryagarh ')]").click()
time.sleep(3)
driver.find_element(By.CLASS_NAME, "sb-date-field__icon sb-date-field__icon-btn bk-svg-wrapper calendar-restructure-sb").click()
time.sleep(6)
driver.execute_script("window.scrollTo(24,document.body.scrollHeight);")
nextbutton = driver.find_element(By.XPATH, "//div[@class='bui-calendar__control bui-calendar__control--next']").click()
#for i in range(3):
#nextbutton.click()
time.sleep(4)
driver.quit()
uj5u.com熱心網友回復:
您的代碼幾乎是正確的。您只需要在單擊next month按鈕之前直接添加一個短暫的延遲。
此外,您不應使用所有這些硬編碼的暫停,例如time.sleep(4)應使用預期條件顯式等待。
我知道您想點擊下個月按鈕 3 次?
此代碼將執行您要查找的操作:
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 as EC
import time
from selenium.webdriver.common.by import By
driver = webdriver.Chrome(executable_path='C:\chromedriver')
wait = WebDriverWait(driver, 20)
driver.get("https://www.booking.com/")
driver.maximize_window()
wait.until(EC.visibility_of_element_located((By.XPATH, "//input[@placeholder='Where are you going?']"))).send_keys("Jaisalmer")
wait.until(EC.visibility_of_element_located((By.XPATH, "//*[contains(@data-label,'Suryagarh ')]"))).click()
for i in range(3):
time.sleep(0.5)
wait.until(EC.visibility_of_element_located((By.XPATH, "//div[@data-bui-ref='calendar-next']"))).click()
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/450453.html
