簡體   English   中英

試圖將文本放入一個<ul>標簽,但它只返回第一項 Selenium

[英]Trying to get the Text inside a <ul> tag but its only returning the First item Selenium

這是無節點列表的結構

無序列表的結構

我想將“var”和“time”的值獲取到兩個字符串並將它們保存在 ArrayList 中

List<String[]> finalResult = new ArrayList<>();

這是我試過的

 List<WebElement> typeElements =driver.findElements(By.xpath("//*[@id=\"container\"]/section[2]/div/div[2]/div[2]/ul/li"));
        for(int i=0;i<typeElements.size();i++){
            WebElement typeSingle = typeElements.get(i);
            String stName = typeSingle.findElement(By.xpath("//div/a/var")).getText();
            String stTime = typeSingle.findElement(By.xpath("//div/a/time")).getText();
            String singleType[] =stName,stTime};
            finalResult.add(singleType);

        }

我總共得到了 13 個項目

最后結果

多變的。 但所有的項目都是一樣的

{"title1","00:23"}

{"title1","00:23"}

{"title1","00:23"} ....

我希望他們像這樣

{"title1","00:23"}

{"title2","00:31"} .....

我究竟做錯了什么?

***編輯*

在 for 循環中的每次迭代中, typeSingle 指的是不同的 id,但stNamestTime變量是相同的

要使用 xpath 獲取子元素,您需要使用./

String stName = typeSingle.findElement(By.xpath("./div/a/var")).getText();
String stTime = typeSingle.findElement(By.xpath("./div/a/time")).getText();

或者使用 css 選擇器:

String stName = typeSingle.findElement(By.cssSelector("var")).getText();
String stTime = typeSingle.findElement(By.cssSelector("time")).getText();

改變這個

 String stName = typeSingle.findElement(By.xpath("//div/a/var")).getText();
 String stTime = typeSingle.findElement(By.xpath("//div/a/time")).getText();

解決了這個問題

String stName = typeSingle.findElement(By.xpath("div/a/var")).getText();
String stTime = typeSingle.findElement(By.xpath("div/a/time")).getText();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM