几乎同样的代码,我运行后只点开了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");
    }
}
图片描述
![图片描述](http://img.mukewang.com/szimg/60e3281d09f73ed113440639.jpg)
写回答

1回答

Mushishi

2021-07-06

你的报错是什么。把第四个没有点击的报错看一下。看一下是不是实际的课程名字中间有多的空格。但是你获取到的只有一个空格

0
0

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

转型Java自动化测试,企业用什么,你就学什么。

752 学习 · 446 问题

查看课程