如何从 href (selenium) 获取 id

How to get id from href (selenium)

我对 java 中的硒有一点疑问。

在我的程序中,我有很多 href:

/cms/shops/edit?id=xxx
<a href="/cms/shops/edit?id=736" class="btn btn-sm btn-primary">Edit</a>
<a href="/cms/shops/edit?id=321" class="btn btn-sm btn-primary">Edit</a>
<a href="/cms/shops/edit?id=123" class="btn btn-sm btn-primary">Edit</a>

如何在 Selenium (Java) 中仅获取 xxx(id) 值并添加到数组中??

代码片段:

- ArrayList 实现:

        List<WebElement> linkList = driver.findElements(By.cssSelector("a[class^='btn btn-sm']"));
        List<Integer> idListFromLink = new ArrayList<Integer>();
        for(WebElement link : linkList){
            String [] temp = link.getAttribute("href").split("=");
            int id = Integer.valueOf(temp[temp.length - 1]);
            idListFromLink.add(id);
        }

- Array 实现:

            List<WebElement> linkList = driver.findElements(By.cssSelector("a[class^='btn btn-sm']"));
            int listSize = linkList.size();
            int [] idListFromLink = new int[listSize];
            for(int i = 0; i < listSize; i++){
                String [] temp = linkList.get(i).getAttribute("href").split("=");   //split the href value using delimeter '='
                int id = Integer.valueOf(temp[temp.length - 1]); //get the last item
                idListFromLink[i] = id;
            }

根据您共享的 HTML 仅打印 xxx(id) 值,您可以使用以下代码块:

List<WebElement> linkList = driver.findElements(By.cssSelector("a.btn.btn-sm.btn-primary[href^='/cms/shops/edit?id']"));
List<Integer> idListFromLink = new ArrayList<Integer>();
for(WebElement link : linkList){
    String my_href = link.getAttribute("href");
    String[] parts = my_href.split("=");
    idListFromLink.add(Integer.parseInt(parts[1]));
}
System.out.println(idListFromLink);