【发布时间】:2018-05-21 17:23:12
【问题描述】:
我目前一直在使用以下方法选择下拉元素:
$('#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。
【问题讨论】:
-
这行得通吗?回答“使用 querySelector 通过 InnerHTML 选择元素”stackoverflow.com/a/34645734/5369466
-
你可以使用 $('#dropdownId option').text()
-
@MirkoAcimovic 返回选项的文本。这个问题是问如何选择选项。
-
或者,您可以选择所有没有
value($('option:not([value])')) 的option标签,然后循环选择没有delete的标签有你想要的text/innerHtml。不过,这看起来很难看。
标签: javascript jquery webdriver-io