如何排序Dropdown列表的值,以及如何通过Selenium和Python删除Dropdown中的重复值

时间:2018-08-16 13:15:37

标签: python list selenium selenium-webdriver webdriver

Apr

我想按字母顺序排序,例如AugDecDec。 并且要删除重复的值,例如JanJundropdownoption = driver.find_elements_by_xpath("//*[@id='month']/option") print len(dropdownoption) for val in dropdownoption: print val.text

一旦执行以下代码,我便可以读取下拉列表中的所有值,但无法排序和删除重复的值:

{{1}}

3 个答案:

答案 0 :(得分:1)

您可以使用以下代码获取没有重复的已排序月份:

monthes = sorted(set([node.text for node in driver.find_elements_by_xpath("//*[@id='month']/option")]))

输出为

['Apr', 'Aug', 'Dec', 'Feb', 'Jan', 'Jul', 'Jun', 'Mar', 'May', 'Month', 'Nov', 'Oct', 'Sept']

如果您想跳过第一个("Month")选项,请尝试替换

driver.find_elements_by_xpath("//*[@id='month']/option")

使用

driver.find_elements_by_xpath("//*[@id='month']/option")[1:]

答案 1 :(得分:1)

这对我来说非常适合我想要的东西。

dropdownoption = driver.find_elements_by_xpath("//*[@id='month']/option")    
print len(dropdownoption)
for val in dropdownoption:
    container=val.text
    list.append(container)
list.sort()
print ' '.join(list)
st=set(list)
print ' '.join(st)

答案 2 :(得分:0)

要对Dropdown列表的值进行排序,并通过Selenium和Python删除Dropdown中的重复值,您可以使用以下解决方案:

months = []
sorted_months = []
unique_months = []
unique_sorted_months = []
dropdownoption = driver.find_elements_by_xpath("//*[@id='month']/option") 
print len(dropdownoption) 
for val in dropdownoption: 
    months.append(val.text)
print("Printing the actual list of months:")
print(months)

#Output>>>['Month', 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sept', 'Oct', 'Nov', 'Dec', 'Dec', 'Jan', 'Jun']

print("Printing the available months in sorted order:")
sorted_months = sorted(months)
print(sorted_months)

#Output>>>['Apr', 'Aug', 'Dec', 'Dec', 'Feb', 'Jan', 'Jan', 'Jul', 'Jun', 'Jun', 'Mar', 'May', 'Month', 'Nov', 'Oct', 'Sept']

print("To remove the duplicate and print the list:")
unique_months= set(months)
print(unique_months)

#Output>>>{'May', 'Jul', 'Feb', 'Mar', 'Oct', 'Nov', 'Jun', 'Jan', 'Aug', 'Sept', 'Month', 'Apr', 'Dec'}

print("To remove the duplicates and print the available months in sorted order:")
unique_sorted_months = sorted(set(months))
print(unique_sorted_months)

#Output>>>['Apr', 'Aug', 'Dec', 'Feb', 'Jan', 'Jul', 'Jun', 'Mar', 'May', 'Month', 'Nov', 'Oct', 'Sept']