无法使用Selenium选择所选下拉列表

2024-06-26 13:34:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试单击用所选JQuery库创建的Select下拉列表中的一个标记。在

<select id="languagesSelect" data-placeholder="All languages" style="width: 302px; display: none;" class="chzn-done">


<option value="all">All languages</option>
<option value="en">English</option>
<option value="ar">Arabic</option>
<option value="zh_cn">Chinese (Simplified)</option>
<option value="zh_tw">Chinese (Traditional)</option>

</select><div id="languagesSelect_chzn" class="chzn-container chzn-container-single chzn-container-active" style="width: 302px;" title=""><a href="javascript:void(0)" class="chzn-single chzn-single-with-drop" tabindex="-1"><span>All languages</span><div><b></b></div></a><div class="chzn-drop" style="left: 0px; width: 300px; top: 30px;"><div class="chzn-search"><input type="text" autocomplete="off" style="width: 265px;"></div><ul class="chzn-results"><li id="languagesSelect_chzn_o_0" class="result-selected active-result highlighted" style="">All languages</li><li id="languagesSelect_chzn_o_1" class="active-result" style="">English</li><li id="languagesSelect_chzn_o_2" class="active-result" style="">Arabic</li><li id="languagesSelect_chzn_o_3" class="active-result" style="">Chinese (Simplified)</li><li id="languagesSelect_chzn_o_4" class="active-result" style="">Chinese (Traditional)</li><li id="languagesSelect_chzn_o_5" class="active-result" style="">Hungarian</li><li id="languagesSelect_chzn_o_14" class="active-result" style="">Italian</li><li id="languagesSelect_chzn_o_15" </ul></div></div>
</div>

下面是我如何从下拉列表中选择“英语”:

^{pr2}$

但是我收到这个错误:

ElementNotVisibleException: element not visible: Element is not currently visible and may not be manipulated
  (Session info: chrome=65.0.3325.181)
  (Driver info: chromedriver=2.37.544315 (730aa6a5fdba159ac9f4c1e8cbc59bf1b5ce12b7),platform=Windows NT 10.0.16299 x86_64)

我试过了:

  • 在下拉菜单上执行click(),然后发送下箭头键,然后按enter键。我收到了WebDriverException: unknown error: cannot focus element
  • 移动到select标记的divactions.move_to_元素(div_元素)但它没有改变任何东西。在

如何从下拉列表中选择元素?在


Tags: dividvaluestyleliresultallwidth
3条回答

choosed的工作原理是隐藏真正的select语句并用div模拟它。在

您需要找到可以发送提示文本的输入字段,然后找到带有选项列表的div。一旦您有了列表,请单击该列表中的正确项目。在

删除与此类似。您需要找到保存所选选项列表的div并单击正确的项。在

您有一个元素不可见的异常,对于同样的情况,您必须等待一段时间,直到元素准备好定位。{{cd2>你可以使用^方法来定位它。在

由于display: none,您发布的HTML中的SELECT标记目前不可见。硒被设计成不与无形元素发生作用。如果没有链接到页面,很难说解决方案是什么,但是你需要像用户一样处理这个问题。。。用户会怎么做才能使下拉列表暴露出来?一旦你明白了这一点,编写代码来执行这些用户操作,你应该很好。在

相关问题 更多 >