[英]How to get text from inside tag use selenium webdriver java?
[英]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,但stName 、 stTime變量是相同的
要使用 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.