首页 > 解决方案 > 使用 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")>]

标签: pythonselenium-webdriver

解决方案


我想你将不得不采取更小的步骤。查看此代码块。它适用于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()

推荐阅读