无法使用Selenium在日历中选择明天的日期
我尝试使用find_element_by_css_selector和find_element_by_xpath,但似乎没有任何效果。
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
我已附上以下图片:
<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>
片段日历日期选择器
您必须使用以下CSS选择第二天。
td.ui-datepicker-current-day + td
码:
browser.find_element_by_css_selector("td.ui-datepicker-current-day+td").click()
+
相邻的同级组合器。如果您在当前示例中考虑td.ui-datepicker-current-day
正在选择当前日期,例如,17
但我们要选择以下同胞,则使用+
将选择同胞,并且我们指定将相邻同胞过滤为td
。
如果要在相同情况下使用xpath,则可以使用following-sibling
并按标记名过滤,td
如下所示。
//td[contains(@class, 'ui-datepicker-current-day')]/following-sibling::td
简而言之+
,css中的内容几乎等同following-sibling
于xpath中的内容,这将有助于选择同级项。
有关上述方法,请参考CSS和Xpath上的以下链接。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句