我一直在尝试使用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>
现在问题是,在模拟点击时,虽然显示了选项列表,但我无法找到此元素并选择任何选项。
有人可以帮忙。
答案 0 :(得分:0)
您应该可以使用xpath选择器来获取它:
driver.find_element(By.XPATH, '//div[text()="A-Assigned"]')
您可能需要根据HTML的其余部分使选择器更具体。