我正在使用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文本。
我想与拥有id=matterName
的元素进行互动。我怎么能做到这一点。
答案 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 开始。