Selenium - 从列表中选择项目由ul li值文本

时间:2016-07-05 21:00:14

标签: java selenium-webdriver

我有以下HTML

<div id="colLeft_OrderGroups" class="GroupList GroupList_Left">
            <div class="SelectList" style="height:516px;">
                <div class="DialogSubtitle">Available groups</div>
                <ul class="ui-selectable" id="grdAvailableGroups" style="width:100%; margin-right:2px">
                <li value="10929">AppraisersGroupTest</li>
                </ul>
            </div>
        </div>

如何根据&#34; AppraisersGroupTest&#34;选择选项?文本?

列表中很快会有多个值,因此我需要能够指定文本。

我已经尝试了post中的答案,但我收到了无法解决的语法错误。

2 个答案:

答案 0 :(得分:3)

您可以使用一个xPath衬管实现此目的,如下所示: -

String text = "AppraisersGroupTest";
WebElement el = driver.findElement(By.xpath("//div[@id = 'colLeft_OrderGroups']/descendant::li[text() = '" + text + "']"));
el.click();

希望它会帮助你...... :)

答案 1 :(得分:2)

查看您的HTML,我将假设所需value的{​​{1}}始终是&#34; 10929&#34;为您所需的&#34; AppraisersGroupTest。&#34;有了这些信息,您可以使用下面的代码。

LI

如果事实证明这不是一个好的假设,您可以使用下面的代码搜索所需的文本并单击该元素。

String value = "10929";
WebElement dropdown = driver.findElement(By.id("grdAvailableGroups"));
dropdown.click(); // assuming you have to click the "dropdown" to open it
dropdown.findElement(By.cssSelector("li[value=" + value + "]")).click();