使用python selenium同时选择2 Drop Downs

时间:2015-09-16 10:40:25

标签: python selenium

我正在尝试使用selenium编写一个python脚本,该脚本应该在下拉列表中选择一个值。它工作得很完美! 现在我试图选择两个下拉列表,并且两个下拉列表都具有相同的class_name。我已设法编写脚本但其抛出错误。

    driver.get("url")

    select = Select(driver.find_elements_by_class_name("rs_select"))
    print select

    for nos in len(select):
        for i in nos:
            x = [o.text for o in i.options]                
            i.select_by_visible_text(str(len(x)-1))

    elem = driver.find_element_by_id("continue")
    elem.send_keys(Keys.RETURN)

我试图从下拉列表中选择可用的最大值(它将是最后一个值)。 我不知道我的代码是否正确,请帮忙。这是我得到的错误。

Traceback (most recent call last):
select = Select(driver.find_elements_by_class_name("rs_select"))
File "/usr/local/lib/python2.7/dist-  packages/selenium/webdriver/support/select.py", line 35, in __init__
if webelement.tag_name.lower() != "select":
AttributeError: 'list' object has no attribute 'tag_name'

1 个答案:

答案 0 :(得分:0)

我认为这就是你要找的东西。您希望获取SELECT中的所有list并迭代它们。对于每个SELECT,请使用select_by_index按索引而不是可见文本选择最后一个选项。

driver.get("url")

selects = Select(driver.find_elements_by_class_name("rs_select"))
print selects

for select in selects:
    select.select_by_index(len(selects.options))
    // you may need a slight pause here to let the select magic happen

elem = driver.find_element_by_id("continue")
elem.send_keys(Keys.RETURN)