python - 如何使用 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()
其次是别的东西?
解决方案
这个下拉菜单是使用 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
推荐阅读
- python - 如何打印两次相同的随机数?
- java - Java:从缓存的函数和缓存的 BiFunction 实现递归缓存
- c++ - 测试程序未运行
- python - ValueError:索引和数据应该具有相同的大小
- c# - EPPlus - 在 EPP5 中运行 Workbook.Calculate 时,不计算带有通配符的计数
- c# - 强制本地化在特定控制器中使用特定语言
- c# - .Add() 方法在 C# 中使用“for”循环构建列表时不起作用
- flutter - 如果它已经在索引堆栈中初始化,我如何将值传递给小部件?
- nginx - Laravel 8 URL 字符串,带有重复的 URL 名称作为参数
- r - 如何抑制 rmarkdown 文档中的下载进度消息/警告/r 中的闪亮?