NoSuchFrameException并且无法识别元素

时间:2017-10-13 10:15:42

标签: html selenium iframe selenium-chromedriver

我正在使用selenium webdriver自动化Web应用程序,在此期间,驱动程序必须切换到iframe以与其元素进行交互。我正在做所有可能的步骤切换到iframe,但我仍然得到

  

NoSuchFrameException:没有按名称或ID找到的框架元素   IMW_PROC_MAIN。

以下是我尝试的代码:

driver.switchTo().frame("IMW_PROC_MAIN");
pcw.txt_matterName(driver).sendKeys("TempApplication");

我还尝试在当前HTML页面上查找iframe的总数并按索引切换。 为此,我收到文本框错误

  

NoSuchElementException异常。

分享页面源的屏幕截图。由于某些限制,我不会共享目标HTML文本。HTML Page source

我想与拥有id=matterName的元素进行互动。我怎么能做到这一点。

3 个答案:

答案 0 :(得分:0)

您可以尝试这种替代方案

 WebElement FrameID=driver.findElement(By.id("IMW_PROC_MAIN"));
            driver.switchTo().frame(FrameID);

如果有2个框架相互嵌套,那么试试这个:

WebElement MAINFrameID=driver.findElement(By.id("GB_FRAME"));
                driver.switchTo().frame(MAINFrameID);
 WebElement FrameID=driver.findElement(By.id("IMW_PROC_MAIN"));
                driver.switchTo().frame(FrameID);
// code for your operation

答案 1 :(得分:0)

当你给了higlighted时,还有另一个叫做GB_FRAME的帧。首先,您必须切换到该帧,然后切换到IMW_PROC_MAIN帧。 它是框架内的框架。第一个控件应切换到外框,然后控件将切换到内框

driver.switchTo().frame("GB_FRAME");
driver.switchTo().frame("IMW_PROC_MAIN");
pcw.txt_matterName(driver).sendKeys("TempApplication");

答案 2 :(得分:0)

driver.switchTo().frame(1);

这是使用索引,索引从 0 开始。