课程遍历,遍历到第二个课程就抛出错误org.openqa.selenium.NoSuchElementException

来源:8-6 遍历课程实战-2

慕妹8195540

2018-02-10

package testCase;

import java.util.ArrayList;
import java.util.List;

import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.testng.annotations.Test;

import base.selenium.DriverBase;

public class ClassList extends CaseBase{
    DriverBase driver;
    
    public ClassList() {
        driver=initDriver("chrome");
    }
    
    @Test
    public void getClassList() {
        //driver.windowsMax();
        driver.get("https://coding.imooc.com/");
        List<String> elString=this.listElement();
        
            //this.getElement(By.xpath("//*[contains(text(),'"+listString.get(i)+"')]")).click();
        for(int i=0;i<elString.size();i++) {
            driver.findElement(By.xpath("//*[contains(text(),'"+elString.get(i)+"')]")).click();
            driver.back();
        }
            
        
    }
    
    public List<String> listElement() {
        
        WebElement element=driver.findElement(By.className("shizhan-course-list"));
        List<WebElement> els=element.findElements(By.className("shizhan-course-box")); //box
        List<String> elString=new ArrayList<String>();
        
        for(WebElement el:els) {
            elString.add(el.findElement(By.className("shizan-desc")).getText());
            System.out.println(el.findElement(By.className("shizan-desc")).getText());
        }
        return elString;
    }
    
}

写回答

1回答

Mushishi

2018-02-11

你好,回家路上没看到,这个是因为慕课网他们的课程有时候中间加了两个空格,但是我们取出来的时候只有一个,然后你定位的时候就报错了,你可以通过前面的dom知识点去把拿出来的定位信息比较一下,你就会发现错误了。

0
3
慕妹8195540
非常感谢!
2018-03-07
共3条回复

Web自动化测试 Selenium基础到企业应用

零基础学习Web自动化,测试面试必问技术点解答,高薪在向你招手

1237 学习 · 862 问题

查看课程