我正在自动化一个机器人来预定某个时间(首选时间和第二首选时间).

以下是我的代码:

preferred_time=driver.find_element(By.XPATH,'//div[@class="booking-start-time-label"][contains(., "12:33pm")]')
preferred_time.click()
second_preferd_time= driver.find_element(By.XPATH,'//div[@class="booking-start-time-label"][contains(., "1:33pm")]')
second_preferd_time.click()

推荐答案

理想的方法是,try 点击初始所需元素,其中WebDriverWaitelement_to_be_clickable(),如果它捕捉不到102,则try 点击第二个所需元素,如下所示:

try:
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, '//div[@class="booking-start-time-label"][contains(., "12:33pm")]'))).click()
except TimeoutException:
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, '//div[@class="booking-start-time-label"][contains(., "1:33pm")]'))).click()

Note:您必须添加以下导入:

from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

Python相关问答推荐

使用miniconda创建环境的问题

按列分区,按另一列排序

2D空间中的反旋算法

优化pytorch函数以消除for循环

将pandas Dataframe转换为3D numpy矩阵

修复mypy错误-赋值中的类型不兼容(表达式具有类型xxx,变量具有类型yyy)

Python解析整数格式说明符的规则?

如何获得每个组的时间戳差异?

PyQt5,如何使每个对象的 colored颜色 不同?'

如何从数据库上传数据到html?

什么是最好的方法来切割一个相框到一个面具的第一个实例?

索引到 torch 张量,沿轴具有可变长度索引

不能使用Gekko方程'

启用/禁用shiny 的自动重新加载

基于行条件计算(pandas)

使用字典或列表的值组合

用来自另一个数据框的列特定标量划分Polars数据框中的每一列,

操作布尔值的Series时出现索引问题

跨两个数据帧收集非索引列上的公共组

对齐多个叠置多面Seborn CAT图