首页 > 解决方案 > 是否可以使用 Selenium 动态创建链接并单击它?

问题描述

假设有一个网站使用 Ajax 调用动态加载数据。数据运行到 200 页,每页大约 50 行。分页在底部生成,就像

<div class="pagination">
    <a class="paginate" id="previous">Previous</a>
    <span>
        <a class="paginate" id="p1">1</a>
        <a class="paginate" id="p2">2</a>
        <a class="paginate" id="p3">3</a>
        <span class="ellipsis">…&lt;/span>
        <a class="paginate" id="p200">200</a>
    </span>
    <a class="paginate" id="next">Next</a>
</div>

将 Selenium 与 Java 一起使用,是否可以动态生成链接,例如

<a class="paginate" id="p100">100</a>

并点击,直接跳转到第100页?

标签: javaajaxseleniumdynamichyperlink

解决方案


看看这是否有效: -

        Random rand = new Random();
        int lowerBound = 1;
        int upperBound = 11;
        
        int pageNum = rand.nextInt((upperBound - lowerBound)+1)+lowerBound;
        System.out.println("Page num generated "+pageNum);
        
        String xpathStr = ".//a[@id='p"+pageNum+"']";
        System.out.println(xpathStr);
        driver.findElement(By.xpath(xpathStr)).click();

输出:

Page num generated 8
.//a[@id='p8']

推荐阅读