首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用Selenium-Python从日历中选择第二天

如何使用Selenium-Python从日历中选择第二天
EN

Stack Overflow用户
提问于 2019-05-17 19:01:18
回答 1查看 1.2K关注 0票数 2

无法使用Selenium在日历中选择明天的日期

我尝试过使用find_element_by_css_selector和find_element_by_xpath,但是似乎没有什么效果。

代码语言:javascript
复制
import time
import datetime
from time import strftime
from selenium import webdriver
browser = webdriver.Chrome("C:\Program Files (x86)\Google\Chrome\Application\chromedriver_win32\chromedriver.exe")
browser.get('https://www.****.com')

browser.find_element_by_id("UserName").send_keys("***")
browser.find_element_by_id("password").send_keys("***")
browser.find_element_by_id("submit-sign-in").click()


browser.find_element_by_id("Information").click()
browser.find_element_by_id("Amenities").click()

browser.find_element_by_id("reserve").click()
browser.find_element_by_id("resv-date").click()

******#The code works fine until here**********

#Trying to pick tomorrows date from the calendar.
browser.find_element_by_css_selector("a.ui-state-default.ui-state-active").click()

Not getting an error message but it doesn't select the required date

现附上以下图片:

代码语言:javascript
复制
<td class="  ui-datepicker-today" data-handler="selectDay" data-event="click" data-month="4" data-year="2019"><a class="ui-state-default ui-state-highlight" href="#">17</a></td>
<a class="ui-state-default ui-state-highlight" href="#">17</a></td>
<td class=" ui-datepicker-week-end  ui-datepicker-current-day" data-handler="selectDay" data-event="click" data-month="4" data-year="2019"><a class="ui-state-default ui-state-active" href="#">18</a></td>
<a class="ui-state-default ui-state-active" href="#">18</a>

片段日历选择器

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-17 19:13:05

您必须使用下面的css来选择第二天。

代码语言:javascript
复制
td.ui-datepicker-current-day + td

代码:

代码语言:javascript
复制
browser.find_element_by_css_selector("td.ui-datepicker-current-day+td").click()

+相邻的兄弟组合器。如果在当前示例中考虑到,td.ui-datepicker-current-day正在选择当前的日期,即17,但我们希望选择以下兄弟姐妹,因此使用+将选择同级,并指定筛选相邻的兄弟姐妹为td

如果您想在相同的情况下使用xpath,那么您可以使用following-sibling并通过标记名td进行筛选,如下所示。

代码语言:javascript
复制
//td[contains(@class, 'ui-datepicker-current-day')]/following-sibling::td

简而言之,css中的+几乎等同于xpath中的following-sibling,这将有助于选择同级项。

请参阅上面讨论的方法上的CSS和Xpath的以下链接。

CSS

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56192168

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档