2017-10-13 200 views
-2

我正在使用selenium webdriver自动执行Web应用程序,在此期间有一种情况,驱动程序必须切换到iframe才能与其元素进行交互。我所做的一切可能的措施,切换到iframe但还是我得到NoSuchFrameException并且无法识别元素

NoSuchFrameException:通过名称或ID IMW_PROC_MAIN发现无边框元素。

下面是我试过的代码:

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

我也试图找到指数当前HTML页面和开关I帧的总数。 为此,我收到文本框错误为

NoSuchElementException。

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

我想与具有id=matterName的元素进行交互。我如何才能做到这一点。

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 
+0

我不介意失望的选票。但用户可能希望在投下它之前指出这个问题中的错误/不完整。 – MKay

回答

0

如果有2帧相互嵌套那就试试这个你可以试试这个替代

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

。首先,您必须切换到该帧,然后切换到IMW_PROC_MAIN帧。 它是框架内的框架。第一个控制应该切换到外框,然后控制将切换到内部的一个

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

是的,它正在切换到GB_FRAME,但无法通过id = IMW_PROC_MAIN找到元素。 – MKay

0

当你给亮显有一个名为GB_FRAME另一架:

相关问题