从窗口切换到iframe时出错

从窗口切换到iframe时出错,iframe,selenium-webdriver,Iframe,Selenium Webdriver,从窗口切换到iframe时出错,并且没有找到iframe id。testng中出现错误 剧本 //单击后,我会在几秒钟内打开Iframe窗口 driver.switchTo().frame("GTM-WDM67TP"); //通过传递id切换到iframe窗口 click(locator.login_email); //单击iframe窗口上的元素 源代码 以下是切换到所需帧的不同方式: driver.switchTo().frame(driver.findElement(By.xpath(

从窗口切换到iframe时出错,并且没有找到iframe id。testng中出现错误

剧本

//单击后,我会在几秒钟内打开Iframe窗口

driver.switchTo().frame("GTM-WDM67TP");
//通过传递id切换到iframe窗口

click(locator.login_email);
//单击iframe窗口上的元素

源代码


以下是切换到所需帧的不同方式:

driver.switchTo().frame(driver.findElement(By.xpath("//iframe[contains(@src, 'GTM-WDM67TP')]")));

如果它是页面上的第一个帧,则使用index属性,还可以尝试以下操作:

driver.switchTo().frame(0);


未为框架定义id属性。

否此xpath不起作用。你能建议另一种方法吗?还有很多其他的方法。我更新了我的答案,并提到了一些选择。但是,如果它是一个可公开访问的用户界面,请您分享详细信息,以便我们能够准确地找出哪一个适用于您的情况?谢谢,它现在可以工作了。它通过传递1而不是0来处理索引属性,相反,它只有1个iframe。
driver.switchTo().frame(driver.findElement(By.xpath("//iframe[contains(@src, 'GTM-WDM67TP')]")));
driver.switchTo().frame(driver.findElement(By.xpath("//iframe[@src='https://www.googletagmanager.com/ns.html?id=GTM-WDM67TP')]")));
driver.switchTo().frame(0);
driver.switchTo().frame(driver.findElement(By.tagName("iframe")));