我正在尝试使用selenium代码定期刷新网页,直到按钮可点击为止

2024-04-25 16:54:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经成功创建了一个脚本,可以在网页中导航以加入等待列表(在这个社区的大量帮助下)。此脚本在“加入等待列表”按钮可单击时工作,但有时等待列表未打开,并且没有可单击的按钮。如何编写此脚本以不断刷新页面,直到链接可单击,然后继续执行以下脚本

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

PATH = "C:\Python\Pycharm\MCattempt2\Drivers\chromedriver.exe"
driver = webdriver.Chrome(PATH)

driver.get("https://v2.waitwhile.com/l/fostersbarbershop/list-view")

try:
    element = WebDriverWait(driver, 10).until(
        EC.element_to_be_clickable((By.ID, "join-waitlist")))
finally:
    element.click()

try:
    element = WebDriverWait(driver, 10).until(
        EC.element_to_be_clickable((By.ID, "ww-name")))
finally:
    element.send_keys("geralt")

try:
    element = WebDriverWait(driver, 10).until(
        EC.element_to_be_clickable((By.ID, "phone01")))
finally:
    element.send_keys("5555555")
try:
    element = WebDriverWait(driver, 3).until(
        EC.element_to_be_clickable((By.XPATH, "/html/body/app-root/public-landing- 
        page/main/div/div/public-confirm-page/div/div/div/div[2]/form/div[1]/button")))
finally:
    element.click()

Tags: tofromimportdiv脚本bydriverselenium
1条回答
网友
1楼 · 发布于 2024-04-25 16:54:39

如注释部分所述,使用无限循环检查元素是否可单击,若不可单击,它将转到异常和刷新页面并继续无限循环。如果它发现可点击,那么它将点击并打破无限循环

while True:
    try:
       element = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.ID, "ww-name")))
       element.click()
       break
    except:
       driver.refresh()
       continue

相关问题 更多 >