课程遍历,遍历到第二个课程就抛出错误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回答
-
你好,回家路上没看到,这个是因为慕课网他们的课程有时候中间加了两个空格,但是我们取出来的时候只有一个,然后你定位的时候就报错了,你可以通过前面的dom知识点去把拿出来的定位信息比较一下,你就会发现错误了。
032018-03-07
相似问题