如何从下拉菜单中选择具有SELECT OPTION标签的元素?

时间:2018-08-15 22:35:58

标签: javascript selenium selenium-webdriver webdriver-io

我正在使用WEBDRIVERIO框架。我在此html语法中有一个下拉列表。我尝试使用ID = question-3

进行扩展

此后,我尝试使用SELECT按选项,值,文本进行所有选项。但由于显然不是SELECT DROPDOWN,所以没有一个起作用。我尝试根据输入或标签选项单击定位器,但收到“元素不可见”错误消息。

<div id="question-3" class="question ">
    <div class="single-dropdown">
        <input type="text" name="input-3" class="js-single-selection" placeholder="gender" data-question-id="3" data-index="3" readonly="" style="width: 77px;">
        <div class="single-select-container" style="display: none;">
    <div class="single-select-item" data-image="">
        <label for="option-0-3" data-open="exampleModal1" class="option-0-3-modal">man</label>
        <input type="checkbox" id="option-0-3" data-answer-type="single" data-question-id="3" value="man" data-index="3">
    </div>

    <div class="single-select-item checked" data-image="">
        <label for="option-1-3" data-open="exampleModal1" class="option-1-3-modal">woman</label>
        <input type="checkbox" id="option-1-3" data-answer-type="single" data-question-id="3" value="woman" data-index="3">
    </div>  
</div>
    </div>
.</div>

2 个答案:

答案 0 :(得分:1)

由于html显示了输入标签。我建议:

 1. type the value in that input box (placeholder="gender")
 2. wait for options to appear (Label tag)
 3. click the appeared item.(Appeared label)

如果您的方案失败,请提供失败的堆栈跟踪。

答案 1 :(得分:0)

我建议单击“选择项目”(在这种情况下为输入),然后实施等待(请参阅文档:http://webdriver.io/api/utility/waitForVisible.html)。等待其在屏幕上可见后,单击下拉菜单。像这样...

browser.click(selectItem);
browser.waitForVisible(dropdownItem);
browser.click(dropdownItem);