Python 如何使用selenium从下拉菜单中随机选择?

Python 如何使用selenium从下拉菜单中随机选择?,python,selenium,Python,Selenium,我是Python3的新手,一直在学习使用selenium自动化我的一些web任务 比如说,他们在页面上有3个下拉列表,分别是月、日和年。选择下拉菜单时,我如何才能随机选择菜单中列出的选项 month = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] day = ['1', '2', '3', '4', '5', '6', '7',

我是Python3的新手,一直在学习使用selenium自动化我的一些web任务

比如说,他们在页面上有3个下拉列表,分别是月、日和年。选择下拉菜单时,我如何才能随机选择菜单中列出的选项

    month = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
             'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
    day = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10'
           '11', '12', '13', '14', '15', '16', '17', '18', '19', '20'
           '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31']
    year = ['1996', '1995', '1994', '1993', '1992', '1991', '1990', '1989', '1998' ]

    Select(driver.find_element_by_css_selector('#month')).select_by_visible_text('Jun')
    Select(driver.find_element_by_css_selector('#day')).select_by_visible_text('13')
    Select(driver.find_element_by_css_selector('#year')).select_by_visible_text('1981')

是我目前掌握的密码。我问的基本问题是,他们是通过可视文本随机选择文本的方法吗?

您可以使用
随机。选择
,因此您的代码是:

import random    

month = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
         'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
day = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10'
       '11', '12', '13', '14', '15', '16', '17', '18', '19', '20'
       '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31']
year = ['1996', '1995', '1994', '1993', '1992', '1991', '1990', '1989', '1998' ]

Select(driver.find_element_by_css_selector('#month')).select_by_visible_text(random.choice(month))
Select(driver.find_element_by_css_selector('#day')).select_by_visible_text(random.choice(month))
Select(driver.find_element_by_css_selector('#year')).select_by_visible_text(random.choice(year))

只需使用
select by_索引(i)
,其中
i
是从下拉列表中的可用选项数中随机选择的。它将更加灵活,您不必维护月、日、年的列表。。。处理闰年或闰月的不同日期,28 v 30 v 31等

month = Select(driver.find_element_by_css_selector('#month'))
month.select_by_index(randint(0, len(month.options) - 1))

我可能建议您打印/记录运行期间选择的随机选项。如果您遇到问题,您将需要这些信息来复制或调查。

为什么不
。按可视文本选择(随机。选择(月))
谢谢,我确实尝试了随机库,但有点不同。感谢您的快速代码,它起作用了;-)当您选择2月31日,此代码将导致问题,依此类推。