无法从selenium python脚本中选择列表中的值

时间:2016-02-16 14:53:02

标签: python selenium automation

我一直在尝试使用selenium和python作为脚本语言,在基于Web的工具上自动执行一些操作。

所以在这个页面中,我有一个名为status的字段,这里是HTML代码。

<div style="padding-left:105px" id="x-form-el-BugFieldsEditor_Status-desc" class="x-form-element x-form-el-BugFieldsEditor_Status-desc" role="presentation">
   <div class=" x-form-field-wrap  x-component " role="combobox" id="BugFieldsEditor_Status-desc" style="width: 230px;">
      <input type="text" class=" x-form-field x-form-text x-triggerfield-noedit" id="BugFieldsEditor_Status-desc-input" name="Status-desc" tabindex="1" readonly="" autocomplete="off" aria-owns="x-auto-462" aria-selected="" style="width: 205px;" aria-readonly="false" aria-invalid="false" aria-required="false">
      <img class="x-form-trigger x-form-trigger-arrow" src="https://someurl/clear.gif" id="x-auto-463">
   </div>
</div>

它实际上显示为页面上的组合框下拉列表。我可以通过ID找到元素找到这个元素,并能够模拟点击事件,它会显示它包含的选项列表。这个的HTML代码就是这个。

<div role="presentation" id="x-auto-881" class="x-combo-list x-ignore x-component x-border " style="border-width: 1px; z-index: 1060; visibility: visible; height: 273px; width: 228px; left: 277px; top: 75px;">
   <div tabindex="0" hidefocus="true" id="x-auto-462" class=" x-view x-combo-list-inner x-component  x-unselectable " style="overflow-x: hidden; padding: 0px; border-width: 0px; height: 273px; width: 228px;" unselectable="on">
      <div class="x-combo-list-item " role="listitem">A-Assigned</div>
      <div class="x-combo-list-item " role="listitem">C-Closed</div>
      <div class="x-combo-list-item " role="listitem">D-Duplicate</div>
      <div class="x-combo-list-item " role="listitem">F-Forwarded</div>
      <div class="x-combo-list-item " role="listitem">H-Held</div>
      <div class="x-combo-list-item " role="listitem">I-Info_req</div>
      <div class="x-combo-list-item " role="listitem">J-Junked</div>
      <div class="x-combo-list-item " role="listitem">M-More</div>
      <div class="x-combo-list-item " role="listitem">O-Opened</div>
      <div class="x-combo-list-item  x-view-highlightrow x-combo-selected" role="listitem">P-Postponed</div>
      <div class="x-combo-list-item " role="listitem">R-Resolved</div>
      <div class="x-combo-list-item " role="listitem">U-Unreproducible</div>
      <div class="x-combo-list-item" role="listitem">W-Wait</div>
   </div>
</div>

现在问题是,在模拟点击时,虽然显示了选项列表,但我无法找到此元素并选择任何选项。

有人可以帮忙。

1 个答案:

答案 0 :(得分:0)

您应该可以使用xpath选择器来获取它:

driver.find_element(By.XPATH, '//div[text()="A-Assigned"]')

您可能需要根据HTML的其余部分使选择器更具体。