WebdriverIO waitForExist()选择元素's选定的选项

WebdriverIO waitForExist() select element's selected option

本文关键字:选项 waitForExist 选择 元素 WebdriverIO      更新时间:2023-09-26

我最初的研究让我找到了jQuery选择器,它可以让我在Chrome检查器中返回正确的元素,但即使jQuery识别了,Webdriver也无法识别这个选择器。

这个片段就是我的select元素的样子。

<select id="ember2932" tabindex="0" class="reasons-drop-down ember-view x-select">
    <option id="ember2933" class="ember-view x-option">Select a Reason</option>
    <option id="ember2935" value="DOCUMENT_LOST" class="ember-view x-option">Document Lost</option>
    <option id="ember2937" value="DATA_ISSUE_CORRECTION" class="ember-view x-option">Data Issue/Correction</option>
</select>

我使用的jQuery选择器是:

$("select.reasons-drop-down option:selected:contains('Document Lost')")

它在Chrome检查器中工作,并在选择"文档丢失"选项时返回:

[<option id=​"ember2935" value=​"DOCUMENT_LOST" class=​"ember-view x-option">​Document Lost​</option>​]

当由于找不到元素而未选中时,它将返回一个空数组。

当我在Webdriver中增量启动选择器时,它会产生有意义的返回,一直到

$("select.reasons-drop-down option")

一旦我添加了:selected,Webdriver就无法再看到选择器的存在,即使检查器中的jQuery仍然可以。

我如何让Webdriver识别我知道存在于DOM中并且可以使用jQuery选择的元素?在这一点上,我被阻止了,因为我根本无法让Webdriver识别所选的选项,即使我可以在jQuery中清楚地获得它。

如何在Webdriver中验证所选选项?waitForExist()不起作用,isSelected()的api似乎不适合这种用途,或者我不理解它。

如果您没有绑定使用JQuery,您可以尝试

  client.selectByValue('#ember2932', 'DOCUMENT_LOST')

http://webdriver.io/api/action/selectByValue.html