我如何从列表中选择项目

家人

我无法在列表中获得商品。我所得到的只是范围中的一项。如何在选择项中获取项目。如果我不在CSS选择器中使用span,那么脚本将生成一个错误,指出该元素不可见。

这是页面的HTML:

<table>
<tbody>
    <tr>
        <td>
            <div>
                <div class="select2-container select2-container-active" id="s2id_agency" style="width: 150px;">
                <a href="javascript:void(0)" onclick="return false;" class="select2-choice" tabindex="-1">   
                <span>01_me</span>
                <abbr class="select2-search-choice-close" style="display:none;"></abbr>   
                <div>
                <b></b>
                </div>
                </a>
                <input class="select2-focusser select2-offscreen" type="text"></div>
                <select name="agency" id="agency" style="width:150px;" class="select2-offscreen" tabindex="-1">
                <option value="14814">01_me</option>
                <option value="14333">A_RLAgency</option>
                <option value="14771">Agency_20150111183734</option>
                <option value="14254">RLAgency</option>
                <option value="14065">unknown_agency</option></select>
            </div>
        </td>
    </tr>   
</tbody>

这是我的脚本:

        try {
        WebDriverWait wait = new WebDriverWait(driver, 30);
        List<String> displayed = new ArrayList<String>();
        List<String> sorted = new ArrayList<String>();

        List<WebElement> verifyAgency = wait.until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By
                .cssSelector("#s2id_agency > a.select2-choice > span")));


        System.out.println("NUMBER OF ROWS IN THIS TABLE = "
                + verifyAgency.size());


        for (WebElement element : verifyAgency) {
            System.out.println("" + element.getText());
            displayed.add(element.getText());
            sorted.add(element.getText());
        }

        Collections.sort(sorted);
        log.info(sorted);
        if (!displayed.equals(sorted)) {

            final String failedMsg = "Agency is not in alphabatical ordr.";
            log.error(failedMsg, null);
            boolean passed = false;
            Assert.assertFalse(passed, failedMsg);
            System.out.println(failedMsg);
        }

    } catch (Exception e) {

        final String failedMsg = "Failed trying to check agency names in alphabetical order.";
        log.error(failedMsg, null);
        boolean passed = false;
        Assert.assertFalse(passed, failedMsg);
        System.out.println(failedMsg);
    }
维维克·辛格(Vivek Singh)

尝试使用以下代码:

Select objSelect = new Select(dw2.findElement(By.id("agency")));
List<WebElement> lstOptions = objSelect.getOptions();
boolean sorted = false;
for (int i = 0; i < lstOptions.size() - 1; i++) {
    if (lstOptions.get(i).getText()
        .compareTo(lstOptions.get(i + 1).getText()) > 0) { // Checking sorting based on natural sort
    sorted = false;
    break;
    }
    sorted = true;
}
if (sorted)
    System.out.println("Sorted");
else
    System.out.println("Un-sorted");

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章