使用Webdriver selenium - Java单击下一个列表元素

时间:2016-02-29 14:22:05

标签: java selenium selenium-webdriver

我有一个包含10个不同元素链接列表的页面,我clicao一个元素,转到页面指定它,实现需要执行的操作然后返回到元素列表。

执行操作后,我需要返回项目列表并单击下一个元素,而不是单击之前单击的元素。

如何点击列表的下一个元素而不是已点击的LEMENT?

Obs。:我无法访问源代码。

页面的基本结构:

<!DOCTYPE html>
<html>
<body>

<h2>Page Test</h2>

    <div id="results-container"><ol id="results" class="search-results">

    <li class="mod result idx0 people hover" data-li-entity-id="354494011" data-li-position="0"> </li>

    </div>

    </br>


    <div id="results-container"><ol id="results" class="search-results">

        <li class="mod result idx0 people hover" data-li-entity-id="354494012" data-li-position="1"> </li>

    </div>
    </br>

    <div id="results-container"><ol id="results" class="search-results">

        <li class="mod result idx0 people hover" data-li-entity-id="354494022" data-li-position="2"> </li>

    </div>

</body>
</html>

    java.util.List<WebElement> links = (List<WebElement>) driver.findElements(By.linkText("element"));           
    System.out.println(links.size());

Page

2 个答案:

答案 0 :(得分:4)

List<WebElement> links = driver.findElements(By.className("search-results"));
for( int i = 0; i < links.size(); i++)
{
    //The stop below is necessary to store all links in a list to access later.  
    links = driver.findElements(By.className("search-results")); 
    links.get(i).click();
    // Your code here
    driver.navigate().back();
}

答案 1 :(得分:1)

如果您导航到的所有页面需要执行的操作相同,则可以使用以下内容:

List<WebElement> links = (List<WebElement>) driver.findElements(By.linkText("element"));           
for (WebElement link : links) 
{
    link.click();
    doWhateverOtherActions();
    driver.navigate().back();
    break();
}

如果每个页面上的操作不同,您应该考虑将每个链接分别标识为WebElement,并为每个链接创建方法以单击该链接,对该页面执行特定操作并返回到初始页面。