Selenium代码单独运行正常但合在一起不行
我之前从来没有写过代码或脚本,都是在跟着ChatGPT学习。现在我想做一个简单的预约脚本,用来预约某个时间。
一切都运行得很好,直到我到了最后一部分:
next_button = WebDriverWait(driver, 10).until(
EC.element_to_be_clickable((By.XPATH, "//button[.//span[contains(@class, 'mat-button-wrapper') and contains(text(), 'Next')]]"))
)
next_button.click()
time.sleep(5)
finalize_button = driver.find_element(By.XPATH, "//button[.//span[contains(text(), 'Finalize Reservation')]]")
finalize_button.click()
这一部分是点击“下一步”,然后再点击“确认预约”。
但不知为什么,如果我一次性运行整个代码,它就不工作;而如果我逐行运行,每一行都能正常工作。我搞不清楚这是为什么。有没有人能给我一些建议?
1 个回答
1
根据你的描述,这听起来像是一个时间问题。我建议你去掉那个暂停,然后在第二次点击的时候加一个等待,看看这样是否能解决问题。
wait = WebDriverWait(driver, 10)
wait.until(EC.element_to_be_clickable((By.XPATH, "//button[.//span[contains(@class, 'mat-button-wrapper') and contains(text(), 'Next')]]"))).click()
wait.until(EC.element_to_be_clickable((By.XPATH, "//button[.//span[contains(text(), 'Finalize Reservation')]]"))).click()