如何从href(selenium)获取id

时间:2017-11-29 09:23:56

标签: java html selenium href

我对java中的selenium有一点疑问。 在我的程序中,我有很多href / CMS /商店/编辑?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)值并添加到数组中?例如?

2 个答案:

答案 0 :(得分:1)

Code Snipppet:

- 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;
            }

答案 1 :(得分:0)

根据您共享的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);