python - 使用 selenium .click() 时,“到达日期”按钮没有反应
问题描述
我正在商业网站“https://www.landal.com/parks/orveltermarke/prices-and-availability#filter:eyJhIjoiMDItMDctMjAyMSIsImFhIjowLCJhYiI6MCwibiI6Mywic3QiOjkyNCwicyI6IjMifQ==”上进行硒练习。目标为a。打开网站-> b。关闭隐私cookie-> c。打开到达日期下拉列表-> d. 单击第一个可用到达日期。一个。〜c。除了步骤 d 之外,步骤工作得很好:我试图通过 Xpath 找到按钮:
步骤 3 的输入
list=webD.find_elements_by_xpath('// [@id="rnd19"]/div/div[1]/div[3]/div/div[2]/table/tbody//button')
列表[0]。点击
下面的“打印(列表)”输出显示列表包含 9 个可用的到达日期,但网络似乎没有与“列表 [0].click”交互。为什么不?非常感谢!
[<selenium.webdriver.remote.webelement.WebElement (session="0e86a30e1f11647288022ecc6fbd030d", element="0216bfa1-81fd-4f1a-9198-04a1bfc32f0d")>,
<selenium.webdriver.remote.webelement.WebElement (session="0e86a30e1f11647288022ecc6fbd030d", element="8554cda1-57d8-41e5-b4fc-5aab884d2cb5")>,
<selenium.webdriver.remote.webelement.WebElement (session="0e86a30e1f11647288022ecc6fbd030d", element="5c5884a8-ac4b-484b-8139-5a8546c7b201")>,
<selenium.webdriver.remote.webelement.WebElement (session="0e86a30e1f11647288022ecc6fbd030d", element="0b08b6e6-3a0e-4857-9c4e-f4ab0841b343")>,
<selenium.webdriver.remote.webelement.WebElement (session="0e86a30e1f11647288022ecc6fbd030d", element="69a8af48-e772-45f7-828a-15fa7c689202")>,
<selenium.webdriver.remote.webelement.WebElement (session="0e86a30e1f11647288022ecc6fbd030d", element="78dda943-6b38-46cd-a63e-1c5ae4c52da2")>,
<selenium.webdriver.remote.webelement.WebElement (session="0e86a30e1f11647288022ecc6fbd030d", element="94e3dfd4-7284-405e-b836-3b1c643a88e7")>,
<selenium.webdriver.remote.webelement.WebElement (session="0e86a30e1f11647288022ecc6fbd030d", element="37d00624-766e-4ce1-8880-9a5b49a15ed7")>,
<selenium.webdriver.remote.webelement.WebElement (session="0e86a30e1f11647288022ecc6fbd030d", element="c144c8bf-5535-46b6-91d4-3ae0dca34b18")>]
解决方案
我想你将不得不采取更小的步骤。查看此代码块。它适用于2021 年 7 月 16 日。
# Accepting the cookies
driver.find_element_by_xpath('//*[@id="consentRelevant"]').click()
time.sleep(5)
# Arrival date calendar dropdown
driver.find_elements_by_xpath('//*[@id="rnd17"]/div/div[1]')[0].click()
time.sleep(3)
# Loop through 'tr[i]' (to select the week) and 'td[j]' (to select the day from that week)
# The indexing for both tr[i] and td[j] starts from 1
li = driver.find_elements_by_xpath('//*[@id="rnd19"]/div/div[1]/div[3]/div/div[2]/table/tbody/tr[3]/td[6]/button')
time.sleep(2)
li[0].click()
推荐阅读
- android - 有没有一种方法可以知道我应该向用户请求哪些权限才能让 Google Play 接受我的应用程序?
- python - 在多个文件上应用 luigi 管道
- django-rest-framework - 从 Django Rest Framework 导入 format_suffix_patterns 时出错
- mysql - Sequelize:如何检查表中是否存在子字符串
- reactjs - 如何通过 `styled()` 使用 `as` 包装反应组件
- javascript - 网站 html/js 存储在本地计算机、chrome、windows 10 的什么位置?
- c# - 带有 Linq 表达式的 EF Core SQL 函数 LIKE 方法不适用于非字符串类型
- c - 返回一个大变量与使用参数中提供的指针设置它
- apache - Apache - 配置数百个类似站点,无需指定每个站点
- c - 使用 getc() 顺序读取文本文件并使用 fwrite() 写入 bin 文件不能按预期工作?