这是单行列表的结构
structure of the unodered list
我想将“ 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个项目finalResult
变量。但所有物品都是一样的
{“ title1”,“ 00:23”}
{“ title1”,“ 00:23”}
{“ title1”,“ 00:23”} ....
我希望他们像这样
{“ title1”,“ 00:23”}
{“ title2”,“ 00:31”} .....
我在做什么错了?
***编辑*
在for循环内的每个事件 typeSingle 指的是不同的ID 但 stName , stTime 变量相同
答案 0 :(得分:0)
要获取带有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();
答案 1 :(得分:-1)
更改此
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();