首页 > 解决方案 > Web 机器人中的框架操作 xPath 定位器问题

问题描述

我在阅读 iFrame 章节后尝试使用 iFrame,但在切换到所需框架后定位元素时出现错误。我正在尝试的 xPath 是从检查器复制的,但它仍然不起作用。

URL:有机器人框架的示例网站

https://www.sbimf.com/en-us

我可以单击机器人图标并激活框架。使用以下逻辑获取页面中的所有框架。

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();

标签: javaseleniumiframeautomationbots

解决方案


推荐阅读