python - 使用 Selenium 和 Python 在日历日期选择器中选择特定日期

标签 python

请我需要一段代码的帮助。 (我是一个完全的初学者,所以我的代码可能很困惑,对此感到抱歉)

我正在尝试创建一个自动“日期调度程序”来预订每周日的网球场,因为我似乎总是太晚了,最终只能坐在一起吃苹果。 -_-

我面临的问题是 Selenium 可以顺利填写所有必填字段,但是当涉及到日历时我就是无法弄清楚。 日期位于 tbody/tr/td 元素中,xpath 似乎无法识别它。

仅供引用,我正在使用 Python 3

    Problem: 

Date element is found in the following:
<td class="day">25</td>

Xpath 无法准确识别此元素,我不知道如何选择日期,因为它没有标记

我已经尝试了所有方法,从使用 class/id/name/text/xpath 进行定位都没有成功,并且使用 Select(driver.find_element....) 会抛出 Select 无法与 div、tr、td 一起使用的错误。

尝试按照在线教程的建议使用 driver.find_element_by_visible_text("") 进行识别,但这不起作用。

Current Code is as follows: 

import selenium
from selenium import webdriver
from time import sleep
import time
from selenium.webdriver.support.ui import Select

driver = webdriver.Chrome()
driver.get('http://gobook.co.za/')
time.sleep(2)

User = driver.find_element_by_xpath("//input[@id='UserName']")
User.send_keys('XXXXXXXXX')
time.sleep(1)

Psw = driver.find_element_by_xpath("//input[@id='Password']")
Psw.send_keys('XXXXXXXXX')
time.sleep(1)

Button = driver.find_element_by_xpath("//input[@type='submit']")
Button.click()
time.sleep(2)

Booking = driver.find_element_by_xpath("//a[@href='/Bookings/Client']")
Booking.click()
time.sleep(0.5)

New = driver.find_element_by_xpath("//a[@data-toggle='collapse']")
New.click()
time.sleep(0.5)

Serv = Select(driver.find_element_by_xpath("//select[@id='ServiceId']"))
Serv.select_by_value("6")
time.sleep(0.5)


Prov = Select(driver.find_element_by_xpath("//select[@id='ProviderId']"))
Prov.select_by_value("22")
time.sleep(0.5)

Date = driver.find_element_by_id("BookingDate")
Date.click()
Date.send_keys('/25')
time.sleep(0.5)

Expected results = Select the date that falls on a Sunday (25th of August) 

最佳答案

刚刚创建了一个帐户并进行了测试。这样对您方便吗?

import selenium
from selenium import webdriver
from time import sleep
import time
from selenium.webdriver.support.ui import Select

driver = webdriver.Chrome('drivers/chromedriver72.exe')
driver.get('http://gobook.co.za/')
time.sleep(2)

User = driver.find_element_by_xpath("//input[@id='UserName']")
User.send_keys('testgeo')
time.sleep(1)

Psw = driver.find_element_by_xpath("//input[@id='Password']")
Psw.send_keys('testgeo')
time.sleep(1)

Button = driver.find_element_by_xpath("//input[@type='submit']")
Button.click()
time.sleep(2)

Booking = driver.find_element_by_xpath("//a[@href='/Bookings/Client']")
Booking.click()
time.sleep(0.5)

New = driver.find_element_by_xpath("//a[@data-toggle='collapse']")
New.click()
time.sleep(0.5)

Serv = Select(driver.find_element_by_xpath("//select[@id='ServiceId']"))
Serv.select_by_value("6")
time.sleep(0.5)


Prov = Select(driver.find_element_by_xpath("//select[@id='ProviderId']"))
Prov.select_by_value("22")
time.sleep(0.5)

driver.find_element_by_id("BookingDate").clear()
Date = driver.find_element_by_id("BookingDate").send_keys('2019/08/25')
time.sleep(0.5)

关于python - 使用 Selenium 和 Python 在日历日期选择器中选择特定日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57607436/

相关文章:

python - 根据列的计数值的数据框子集

python - 被 tensorflow 输出混淆

python - 在类函数内部定义类函数 : Python

python - 从 HTML 表单运行 Python 代码

python - Django 在产品服务器中打印

Python动态函数生成

python - 如何在pyqt pyside中同时运行对象的多个实例

python - 如何从一个简单的字符串构造一个 timedelta 对象

python - 无法为一副牌赋予数值

javascript - 在 python 中调用 javascript?