如何使用Selenium WebDriver选择特定的元素表单列表?

时间:2017-11-07 07:05:44

标签: selenium

任何人都可以指导我如何从列表视图中选择特定元素 使用下面的代码。

<div id="menu" class="tabalign k-widget k-reset k-header k-menu k-menu-horizontal" data-role="menu" tabindex="0" role="menubar" aria-activedescendant="menu_mn_active">
<li class="k-item k-state-default k-first mainMenu2" role="menuitem" id="menu_mn_active"><span class="k-link"><img class="k-image" alt="" src="/Images/Common/Module_2.png"><span id="2">Profiles</span></span></li>
<li class="k-item k-state-default mainMenu3" role="menuitem"><span class="k-link"><img class="k-image" alt="" src="/Images/Common/Module_3.png"><span id="3">Contacts</span></span></li>

我尝试了以下代码,但它不适用于我:

 WebElement element = driver.findElements(By.xpath("//*[@id=\"menu_mn_active\"]"));
 element.click();

2 个答案:

答案 0 :(得分:0)

在Java中尝试此代码(它从下拉列表中选择第一个元素):

driver.findElement(By. id("menu")).click();

List<WebElement> options = driver.findElements(By. cssSelector(".k-item.k-state-default"));

for (WebElement opt : options) {

    if (opt.getText().equals("Profiles")) {

        opt.click();

    }

}

答案 1 :(得分:0)

您可以这样使用:

首先获取所有元素的位置:

List<WebElement> element = driver.findElements(By.xpath("//*[@id=\"menu_mn_active\"]"));

对于第一个元素:

element.get(0).click(); // for first element 

对于第二个元素:

element.get(1).click(); // for second element