java - Web 机器人中的框架操作 xPath 定位器问题
问题描述
我在阅读 iFrame 章节后尝试使用 iFrame,但在切换到所需框架后定位元素时出现错误。我正在尝试的 xPath 是从检查器复制的,但它仍然不起作用。
URL:有机器人框架的示例网站
我可以单击机器人图标并激活框架。使用以下逻辑获取页面中的所有框架。
WebElement bot = driver.findElement(By.className("avaamo__icon"));
Actions action = new Actions(driver);
action.click(bot).perform();
List<WebElement> frames = driver.findElements(By.tagName("iframe"));
System.out.println("Frame Size: "+ frames.size());
for(WebElement frame:frames){
System.out.println(frame.getAttribute("name"));
}
现在我知道第 1 帧是我感兴趣的 iframe,切换到使用下面的帧。(我希望他们能正常工作,因为我没有看到任何错误消息)。
driver.switchTo().frame(1);
//OR
driver.swithTo().frame(avaamoIframe)
但是,当我尝试使用在浏览器控制台中工作的 xpath 访问框架中的元素时,脚本因找不到元素错误而失败。
driver.findElement(By.xpath("/html/body/div[2]/form/div/div[3]/div[2]/textarea")).sendKeys("Hello");
driver.findElement(By.xpath("/html/body/div[2]/form/div/div[2]/div/a[2]")).click();
driver.findElement(By.cssSelector("[title*='Show me fund details']")).click();
driver.findElement(By.xpath("\"//a[contains(text(),'View Fund Details')]\"")).click();
解决方案
推荐阅读
- kotlin - 比较两个字符串并使用 diff 显示结果 - 这可以快速发现差异
- c - 将文件行存储在 char 双指针中的代码将同一行存储在所有元素中
- c# - '无法将'System.Security.Claims.ClaimsPrincipal'类型的对象转换为'TestApp.SecurityUser'类型。' 在 asp.net 核心中
- r - 将向量设置为月年 tsibble
- java - 如何限制某些传感器每隔几秒发送一次数据?
- c# - Admob 广告未在 Unity、C# 中显示
- linux - nohup 命令 & : 如何丢弃输出?
- c# - 为什么垃圾收集器不垃圾我的实例?
- sql-server - SELF JOIN 基于层次结构匹配行
- java - 前台服务类错误通知