我正在尝试从下拉菜单中单击一个选项。以前可以使用,但是网站已更新。我相信我找到了正确的选项,但是在click()上没有选择任何内容,而是关闭了下拉列表。
这是我正在使用的html代码:
<div class="ui-selectmenu-menu ui-front ui-selectmenu-open" style="top: 890px; left: 252px;"><ul aria-hidden="false" aria-labelledby="select_rep_1-button" id="select_rep_1-menu" role="listbox" tabindex="0" class="ui-menu ui-corner-bottom ui-widget ui-widget-content" aria-activedescendant="ui-id-3" aria-disabled="false" style="width: 195.063px;">
<li class="ui-menu-item"><div id="ui-id-2" tabindex="-1" role="option" class="ui-menu-item-wrapper"> Select a Reputation </div></li>
<li class="ui-menu-item">
<div id="ui-id-3" tabindex="-1" role="option" class="ui-menu-item-wrapper ui-state-active">Neutral</div></li>
<li class="ui-menu-item">
<div id="ui-id-4" tabindex="-1" role="option" class="ui-menu-item-wrapper">Poor</div>
</li><li class="ui-menu-item">
<div id="ui-id-5" tabindex="-1" role="option" class="ui-menu-item-wrapper">Unknown</div></li></ul></div>
我要选择“差”选项(选项4)。我已经尝试过使用ID和XPATH,虽然我觉得很差,但实际上并没有选择它。
我使用以下方法进入下拉菜单:
elem = Wait(drive(20).until(EC.presence_of_element_located((By.XPATH, '//*[@id="select_rep_1-button"]/span[2]')))
elem.click()
我现在已尝试选择“差”选项:
elem = Wait(drive(20).until(EC.presence_of_element_located((By.XPATH, '//*[@id="ui-id-8"]')))
elem.click()
以及ID:
elem = Wait(drive(20).until(EC.presence_of_element_located((By.ID, 'ui-id-4')))
elem.click()
程序完成,没有错误。
我真的只是想找出选择此方法的正确方法。我认为咏叹调后裔可能是关键。我注意到,一旦单击菜单,aria-hidden =“ true”就会更改为false,并且“ aria-activedescendant =” ui-id-4“”中的“ ui-id-#”会根据我选择了哪个选项进行更改结束。
非常感谢您的帮助!