首页 > 解决方案 > 如何使用 Selenium 和 Python 单击 p-dropdown 标记内的元素

问题描述

<p-dropdown _ngcontent-c16="" autofocus="" placeholder="Select Quota" class="ng-tns-c13-11 ui-inputwrapper-filled ng-untouched ng-pristine ng-valid">
  <div class="ng-tns-c13-11 ui-dropdown ui-widget ui-state-default ui-corner-all ui-helper-clearfix" style="width: 234px;">
    <div class="ui-helper-hidden-accessible ng-tns-c13-11 ng-star-inserted">
    <select class="ng-tns-c13-11" aria-hidden="true" tabindex="-1" aria-label="A">
      <option class="ng-tns-c13-11 ng-star-inserted">Select</option>
      <option class="ng-tns-c13-11 ng-star-inserted" value="GN">A</option>
      <option class="ng-tns-c13-11 ng-star-inserted" value="SS">B</option>
      <option class="ng-tns-c13-11 ng-star-inserted" value="LD">C</option>
      <option class="ng-tns-c13-11 ng-star-inserted" value="HP">D</option>
      <option class="ng-tns-c13-11 ng-star-inserted" value="TQ">E</option>
      <option class="ng-tns-c13-11 ng-star-inserted" value="PT">F</option>
      <!----></select>
    </div>

我需要在我尝试使用的 xpath 的下拉列表中选择一个值:

driver.find_element_by_xpath("//*[@value='LD']").click()

但这表示找不到元素......还有什么其他表达式可以用来选择下拉菜单中的选项?

也可以像下面提到的那样做

driver.find_element_by_xpath("//*[@placeholder='选择配额']").click()

其次是别的东西?

标签: pythonseleniumselectselenium-webdriverwebdriverwait

解决方案


这个下拉菜单是使用 select 和 options 标签构建的。所以选择类应该工作。

您可以尝试使用此代码:

select = Select(driver.find_element_by_css_selector("select.ng-tns-c13-11"))

# select by visible text
select.select_by_visible_text('C')  

你必须做的进口:

from selenium.webdriver.support.ui import Select

推荐阅读