Iframe 找不到框架的Selenium Webdriver问题

Iframe 找不到框架的Selenium Webdriver问题,iframe,selenium,frame,selenium-webdriver,Iframe,Selenium,Frame,Selenium Webdriver,有人能帮我找出如何让Selenium Webdriver在选择登录后找到框架吗 点击登录 向用户名发送密钥 @试验 我想在点击登录后,你会被带到一个框架,那就是注册表格 您尝试的是先切换到一个窗口(GB\U窗口) 尝试删除“切换到窗口”调用,只需切换到“帧”并尝试您的操作 编辑代码后,请使用以下命令 driver.findElement(By.linkText("Sign In")).click(); driver.switchTo().frame(0); driver

有人能帮我找出如何让Selenium Webdriver在选择登录后找到框架吗

点击登录 向用户名发送密钥

@试验


我想在点击登录后,你会被带到一个框架,那就是注册表格

您尝试的是先切换到一个窗口(GB\U窗口)

尝试删除“切换到窗口”调用,只需切换到“帧”并尝试您的操作

编辑代码后,请使用以下命令

    driver.findElement(By.linkText("Sign In")).click();
    driver.switchTo().frame(0);
    driver.findElement(By.id("username")).sendKeys("testgr100@gmail.com");

}

我想点击“登录”后,您会被带到一个框架,即注册表

您尝试的是先切换到一个窗口(GB\U窗口)

尝试删除“切换到窗口”调用,只需切换到“帧”并尝试您的操作

编辑代码后,请使用以下命令

    driver.findElement(By.linkText("Sign In")).click();
    driver.switchTo().frame(0);
    driver.findElement(By.id("username")).sendKeys("testgr100@gmail.com");

}请尝试下面的代码。这对我有用。在找到Username元素之前有两个框架。第一个框架是GB_框架,第二个框架在html源代码中没有给出任何名称。因此,我对第二个使用了索引(
frame(0)

@Test

public void fail() throws InterruptedException {    

        driver.findElement(By.linkText("Sign In")).click();
        //switch to frames inside the webpage
        driver.switchTo().frame("GB_frame"); //1st frame
           driver.switchTo().frame(0); //2nd frame              
              driver.findElement(By.id("username")).sendKeys("testgr100@gmail.com");
}

请尝试下面的代码。这对我有用。在找到Username元素之前有两个框架。第一个框架是GB_框架,第二个框架在html源代码中没有给出任何名称。因此,我对第二个使用了索引(
frame(0)

@Test

public void fail() throws InterruptedException {    

        driver.findElement(By.linkText("Sign In")).click();
        //switch to frames inside the webpage
        driver.switchTo().frame("GB_frame"); //1st frame
           driver.switchTo().frame(0); //2nd frame              
              driver.findElement(By.id("username")).sendKeys("testgr100@gmail.com");
}

你能试试这个并告诉我它是否有效吗?我怀疑你所经历的只是Firefox特有的怪异,JavaScriptExecutor会绕过它

public void setEmailAddrOnFieldInSubFrame() {
    driver.findElement( By.linkText("Sign In") ).click();
    driver.switchTo().window("GB_window");
    driver.switchTo().frame(0);
    WebElement element = driver.findElement( By.id("username") );
    JavascriptExecutor executor = (JavascriptExecutor)driver;
    executor.executeScript( "arguments[0].value='testgr100@gmail.com';", element );

    //cleanup frame position by switching back to previous window
    driver.switchTo().defaultContent(); // always do this cleanup just in case
}

你能试试这个并告诉我它是否有效吗?我怀疑你所经历的只是Firefox特有的怪异,JavaScriptExecutor会绕过它

public void setEmailAddrOnFieldInSubFrame() {
    driver.findElement( By.linkText("Sign In") ).click();
    driver.switchTo().window("GB_window");
    driver.switchTo().frame(0);
    WebElement element = driver.findElement( By.id("username") );
    JavascriptExecutor executor = (JavascriptExecutor)driver;
    executor.executeScript( "arguments[0].value='testgr100@gmail.com';", element );

    //cleanup frame position by switching back to previous window
    driver.switchTo().defaultContent(); // always do this cleanup just in case
}

如果应用程序在firefox上运行,那么只需右键单击即可。在关联菜单中,您将首先通过查看此框架下的选项来确定元素是否位于框架下。确认后,检查滤芯。在firebug中缓慢地向上滚动,您将找到元素所在的iframe标记。这样你就会知道这个名字了。如果您想知道所有iFrame的计数及其名称,请使用
driver.findElements(By.tag(“iframe”))。这将返回具有标记的webelements列表,然后您可以逐个迭代并使用getAttribute(“名称”)。注意,只有当iframe实际有一个名称时,它才会返回名称。否则,它将返回空名称。

如果应用程序在firefox上工作,那么只需右键单击即可。在关联菜单中,您将首先通过查看此框架下的选项来确定元素是否位于框架下。确认后,检查滤芯。在firebug中缓慢地向上滚动,您将找到元素所在的iframe标记。这样你就会知道这个名字了。如果您想知道所有iFrame的计数及其名称,请使用
driver.findElements(By.tag(“iframe”))。这将返回具有标记的webelements列表,然后您可以逐个迭代并使用getAttribute(“名称”)。请注意,只有当iframe实际有一个名称时,它才会返回名称。否则,它将返回空名称。

不走运,它只是停留在框架上,光标位于电子邮件地址中。.它不发送密钥。.到目前为止,我尝试了许多解决方案。.org.openqa.selenium.remote.UnreachableBrowserException:与远程浏览器通信时出错。它可能已经死了。生成信息:版本:“2.30.0”,版本:“dc1ef9c”,时间:“2013-02-19 00:15:57”系统信息:os.name:“Windows 7”,os.arch:“x86”,os.version:“6.1”,java.version:'1.6.0_17'驱动程序信息:Driver.version:RemoteWebDrivern不走运,它只是停留在框架上,光标位于电子邮件地址中..它不发送密钥..到目前为止我已经尝试了许多解决方案..org.openqa.selenium.remote.UnreachableBrowserException:与远程浏览器通信时出错。它可能已经死了。生成信息:版本:“2.30.0”,版本:“dc1ef9c”,时间:“2013-02-19 00:15:57”系统信息:os.name:“Windows 7”,os.arch:“x86”,os.version:“6.1”,java.version:'1.6.0_17'驱动程序信息:Driver.version:remotewebdriverstank运行如此之多,不得不将thread.sleeps放入其中,因为它也在移动fast@GabrielAlexander请投票给我的答案,如果它对你有帮助或给了你确切的答案,请接受它作为一个好的答案。非常感谢你的努力,我不得不把线程放在其中。尽管如此因为它也在移动fast@GabrielAlexander:请投票表决我的答案,如果它对您有所帮助或给出了确切的解决方案,请将其视为一个好答案。