首页 > 解决方案 > 通过显示文本获取下拉选项元素

问题描述

我目前一直在使用以下方法选择下拉元素:

$('#dropdownId option[value="value"]')

因为我的大部分元素都写成

<option value="value">value</option>

但是,现在我在这个项目中遇到了一些没有 value 属性的元素,而是看起来像

<option>value</option>

现在我正在努力使用我之前使用的相同语法来选择它。我想使用与以前相同的样式来获取元素(不仅仅是更改选择),因为它是在整个项目中动态使用的格式。到目前为止,我已经尝试过这些:

$('#dropdownId option[value="value"]'); // doesn't work, I'd assume because it doesn't have a value attribute
$('#dropdownId option[text="value"]'); // Doesn't work, I'd assume because "text" isn't actually an attribute
$('#dropdownId option[label="value"]'); // Doesn't work, I'd assume because even though the value is used as the display text, it's not actually specified in the attributes.

我无法向对象添加 value="value",我无法控制 html。

编辑:我意识到 WebdriverIO,虽然它使用类似于 jQuery 的选择器,但不一定具有所有相同的功能。不过,Nathan Hinchey 似乎适用于普通的 jQuery。

标签: javascriptjquerywebdriver-io

解决方案


从这个答案中偷了整块布:

您可以使用 jQuerycontains选择器

$('option:contains("value")')

推荐阅读