java - 我将如何处理我的代码中的多个窗口?
问题描述
在此处输入图像描述java
List<WebElement> group = driver.findElements(By.xpath("//*[@ng-repeat='employeeGroup in employeeGroups']"));
for (int k = 0; k < group.size(); k++) {
if (group.get(k).getText().toLowerCase().startsWith(shuttleObj.getGroupName().toLowerCase())) {
group.get(k)
.findElement(
By.xpath("//body//div[" + (k + 2) + "]//li[1]/ul/a/i"))
.click();
Thread.sleep(500);
String firstparent = driver.getWindowHandle();
for (String firstchild : driver.getWindowHandles()) {
driver.switchTo().window(firstchild);
Thread.sleep(1000);
driver.findElement(By.xpath(props.getProperty("thirdEmployee"))).click();
Thread.sleep(200);
driver.findElement(By.xpath(props.getProperty("fourthEmployee"))).click();
Thread.sleep(200);
driver.findElement(By.xpath(props.getProperty("selectedEmployeeTab"))).click();
Thread.sleep(200);
}
driver.switchTo().window(firstparent);
Thread.sleep(2000);
group.get(k).findElement(By.xpath("//body//div[" + (k + 2) + "]//li[2]/ul/a/i")).click();
String secondparent = driver.getWindowHandle();
for (String secondchild : driver.getWindowHandles()) {
driver.switchTo().window(secondchild);
Thread.sleep(1000);
driver.findElement(By.xpath(props.getProperty("thirdEmployee"))).click();
Thread.sleep(200);
driver.findElement(By.xpath(props.getProperty("fourthEmployee"))).click();
Thread.sleep(200);
driver.findElement(By.xpath(props.getProperty("selectedEmployeeTab"))).click();
Thread.sleep(200);
driver.switchTo().window(secondparent);
}
}
我可以点击第一个孩子,但我不能点击第二个孩子。
这给出的错误是:消息:
stale element reference: element is not attached to the page document
解决方案
在切换到循环中的第二页之前,您必须切换到基本页面,如下面的代码所示。
for (String secondchild : driver.getWindowHandles()) {
driver.switchTo().window(secondchild);
Thread.sleep(1000);
driver.findElement(By.xpath(props.getProperty("thirdEmployee"))).click();
Thread.sleep(200);
driver.findElement(By.xpath(props.getProperty("fourthEmployee"))).click();
Thread.sleep(200);
driver.findElement(By.xpath(props.getProperty("selectedEmployeeTab"))).click();
Thread.sleep(200);
driver.switchTo().defaultContent();
driver.switchTo().window(secondparent);
}
推荐阅读
- indexing - 我想用 Python 按列分组索引
- ios - Swift 如何修复 geocodeAddressString 不匹配的地址
- java - Java Mongo 驱动程序无意间连接到 localhost
- python - Django admin:在列表中排除字段但不在编辑中
- php - 未调度预期的 [App\Events\Frontend\Auth\UserLoggedIn] 事件。无法断言 false 为 true
- python - 如何在python中将Json标签拆分为数据框
- java - Mpandroid图表库饼图点击事件
- reactjs - 从 React 应用程序向 Rocket 后端发送 POST 请求时出错返回失败
- view - 在 SwiftUI 中呈现视图控制器
- python - 为什么通过抓取 LinkedIn 它无法加载请求的 url?Python