几乎同样的代码,我运行后只点开了4个中的前三个课程,而老师点开了四个呢?
来源:2-3 【用对工具提高测试效率】HTML页面元素定位工具讲解

慕姐6221266
2021-07-05
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.concurrent.TimeUnit;
public class CourseList {
public WebDriver driver;
@BeforeClass
public void beforeClass(){
driver = new ChromeDriver();
driver.get("https://coding.imooc.com");
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
System.out.println("this is beforeClass");
}
@Test
public void test01(){
List<String> listString = listCourse();
for (int i=0;i<listString.size();i++) {
// courseName.click();
driver.findElement(By.xpath("//li[@data-name='"+listString.get(i)+"']")).click();
System.out.println(listString.get(i));
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
// Set<String> windowHandles = driver.getWindowHandles();
// String localHandle = driver.getWindowHandle();
// for(String handle:windowHandles){
// if(!(handle.equals(localHandle))){
// }
// }
}
}
public List<String> listCourse(){
List<String> listCourseTitle = new ArrayList<String>();
List<WebElement> courseList = driver.findElements(By.className("ellipsis2"));
for(WebElement courseName:courseList){
String courseTitle = courseName.getText();//获取每个课程的名称
listCourseTitle.add(courseTitle);//所有课程名称放在List列表中
}
return listCourseTitle;
}
@AfterClass
public void afterClass(){
driver.close();
System.out.println("this is afterClass");
}
}
图片描述

写回答
1回答
-
Mushishi
2021-07-06
你的报错是什么。把第四个没有点击的报错看一下。看一下是不是实际的课程名字中间有多的空格。但是你获取到的只有一个空格
00
相似问题