课程遍历问题

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

oooooooooooooooo

2018-12-02

老师您好,在进行课程遍历时,遇到了获取文本有空格的问题。但是不大明白为什么有的名字中间一个空格,有的两个空格,拿出来的都是一个?这是为什么呢?
想到的解决方案有:先获取所有课程的父节点,再去获取所有子节点的方法去遍历所有课程。 除了这个方案还有其他方案可以解决此类型的问题吗?望老师能指点一下~

写回答

3回答

Mushishi

2018-12-03

你好木有,对于这种空格不统一的确实没办法,你便利可以通过xpath,也可以通过list。如果不统一就list。肯定停下,因为你页面刷新了,找不到list对象了。

0
1
oooooooooooooooo
非常感谢!
2018-12-03
共1条回复

oooooooooooooooo

提问者

2018-12-03

o(╯□╰)o

0
0

oooooooooooooooo

提问者

2018-12-03

再问下老师,为什么我这段代码遍历一次就停下了?

@Test
	public void CourseList() {
		driver.get("https://coding.imooc.com/");
		driver.findElement(By.xpath("/html/body/a/i")).click();
		driver.maxWindow();
		// 获取所有课程的父节点
		WebElement parentElement = driver.findElement(By.className("shizhan-course-list"));
		// 获得所有课程的子节点
		List<WebElement> listChildElement=parentElement.findElements(By.className("shizhan-course-box"));
		for(int i=0;i<listChildElement.size();i++) {
			listChildElement.get(i).click();
			driver.back();
			driver.findElement(By.xpath("/html/body/a/i")).click();
		}

	}
FAILED: CourseList
org.openqa.selenium.StaleElementReferenceException: stale element reference: element is not attached to the page document

后来我在for循环中再重新获取父节点和子节点就可以遍历了。为什么呢?

@Test
	public void CourseList() {
		driver.get("https://coding.imooc.com/");
		driver.findElement(By.xpath("/html/body/a/i")).click();
		driver.maxWindow();
		// 获取所有课程的父节点
		WebElement parentElement = driver.findElement(By.className("shizhan-course-list"));
		// 获得所有课程的子节点
		List<WebElement> listChildElement = parentElement.findElements(By.className("shizhan-course-box"));
		for (int i = 0; i < listChildElement.size(); i++) {
			// 获取所有课程的父节点
			WebElement parentElement1 = driver.findElement(By.className("shizhan-course-list"));
			// 获得所有课程的子节点
			List<WebElement> listChildElement1 = parentElement1.findElements(By.className("shizhan-course-box"));
			listChildElement1.get(i).click();
			driver.back();
			driver.findElement(By.xpath("/html/body/a/i")).click();
		}

	}


0
0

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

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

1237 学习 · 862 问题

查看课程