NoSuchFrameException并且无法识别元素
问题描述:
我正在使用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文本。
我想与具有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
答
如果有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
答
当你给亮显有一个名为GB_FRAME另一架:
我不介意失望的选票。但用户可能希望在投下它之前指出这个问题中的错误/不完整。 – MKay