如何使用不规则的HTML更改下拉菜单的值? (Python的/硒)

时间:2013-07-18 21:23:30

标签: python selenium

问题:我想将下拉菜单从“已分配”值更改为“已解决”值。

通常,我只选择元素和send_keys我想要选择的值,但在这种情况下不起作用。我找到了一种解决方法,即选择另一个可以选择的元素 send_keys(Keys.TAB,“已解决”)选择下拉菜单并更改其值。这个问题是偶尔会说我选择的元素不可见并崩溃。

我希望能够直接选择元素并在不使用制表符方法的情况下更改其值。

这是对象的html。

  <div class="core_status" name="core.status" id="core.status0">
    <div class="goog-inline-block goog-flat-menu-button" role="button" style="-moz-user-select: none;" tabindex="3" aria-haspopup="true">
      <div class="goog-inline-block goog-flat-menu-button-caption">Assigned</div>
      <div class="goog-inline-block goog-flat-menu-button-dropdown">&nbsp;</div>
    </div>
  </div>

下拉菜单目前设置为“已分配”,我希望我的脚本将其设置为“Resolve”。

这是我正在使用的。

driver.find_element_by_name("core.summary").click()
driver.find_element_by_name("core.summary").send_keys(Keys.TAB,"R")

1 个答案:

答案 0 :(得分:0)

您是否尝试过使用Select类?它应该是这样的:

from selenium.webdriver.support.ui import Select
Select(driver.find_element_by_name('core.summary')).select_by_index(1)

不幸的是,这取决于物品的顺序和数量。最糟糕的情况是,您应该能够遍历Select.get_options列表以查找所需内容,然后按索引或可见文本进行选择。