Python 如何使用selenium从下拉菜单中随机选择?
我是Python3的新手,一直在学习使用selenium自动化我的一些web任务 比如说,他们在页面上有3个下拉列表,分别是月、日和年。选择下拉菜单时,我如何才能随机选择菜单中列出的选项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',
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日,此代码将导致问题,依此类推。