Selenium Python:不知道如何映射当前时间&x2B;从下拉列表(xpath,值)到选项的1小时

Selenium Python:不知道如何映射当前时间&x2B;从下拉列表(xpath,值)到选项的1小时,python,selenium,Python,Selenium,我正在尝试自动化一个有小时的下拉菜单,我的目标是总是比当前时间提前一小时选择 from selenium import webdriver from selenium.webdriver.remote.webdriver import WebDriver import time from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selen

我正在尝试自动化一个有小时的下拉菜单,我的目标是总是比当前时间提前一小时选择

from selenium import webdriver
from selenium.webdriver.remote.webdriver import WebDriver
import time
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from LoginPage import executor_url,session_id
from datetime import date
from datetime import datetime,timedelta

def attach_to_session(executor_url, session_id):
    original_execute = WebDriver.execute
    def new_command_execute(self, command, params=None):
        if command == "newSession":
            # Mock the response
            return {'success': 0, 'value': None, 'sessionId': session_id}
        else:
            return original_execute(self, command, params)
    # Patch the function before creating the driver object
    WebDriver.execute = new_command_execute
    driver = webdriver.Remote(command_executor=executor_url, desired_capabilities={})
    driver.session_id = session_id
    # Replace the patched function with original function
    WebDriver.execute = original_execute
    return driver

bro = attach_to_session(executor_url, session_id)
bro.get('https://heregoesmywebportaladdress')
today=date.today()
now=datetime.now()+ timedelta(hours=1)
print(date.strftime(now,'%H'))
bro.find_element_by_id("snapshot_scheduler_form_startDate").send_keys(date.strftime(today, '%Y-%m-%d'))
time.sleep(2)
bro.find_element_by_id("snapshot_scheduler_form_startTime_hour").click()
这就是我不知道该怎么做的地方

bro.find_element_by_xpath("/html/body/div[2]/div/div[2]/div[2]/div/div[2]/div/div/div/div[1]/div/div/div/div/div[2]/form/fieldset[1]/div/select[1]/option[13]").click()
time.sleep(2)
这些是选项

<select id="snapshot_scheduler_form_startTime_hour" name="snapshot_scheduler_form[startTime][hour]" class="form-control">
<option value="0">00</option>
<option value="1">01</option>
<option value="2">02</option>
<option value="3">03</option>
<option value="4">04</option>
<option value="5">05</option>
<option value="6">06</option>
<option value="7">07</option>
<option value="8">08</option>
<option value="9">09</option>
<option value="10">10</option> ETCD

00
01
02
03
04
05
06
07
08
09
10 ETCD
下拉列表是一个元素。您可以使用Selenium,这是另一个示例:

from selenium.webdriver.support.select import Select

# select by value
Select(driver.find_element_by_id("myid")).select_by_value(hour)

# or select by text
Select(driver.find_element_by_id("myid")).select_by_visible_text()

Pavel最好编辑您的问题,而不是在这里发表评论。也不推荐使用这种xpath,请尝试按类、id或类似的方式获取元素,而不是右键单击获取xpath。通常,您必须单击输入元素(打开下拉菜单),然后单击所需选项。这不是从下拉菜单中进行的简单选择,我有一个获取当前时间+1小时的代码,需要将其映射到下拉菜单中的选项。映射到下拉菜单中的选项。您想选择值为当前时间+1小时的选项吗?@AMC是的,更正我刚刚找到了方法。谢谢旺卡告诉我xpath上的错误。我就是这样做的。now1=date.strftime(现在,'%H')选择(按id(“快照计划程序”表格“开始时间”))查找元素。按可视文本选择(now1)