gpt4 book ai didi

java - 无法访问弹出新窗口中框架内的网络元素

转载 作者:行者123 更新时间:2023-11-30 06:18:51 25 4
gpt4 key购买 nike

    import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;

public class Iframe {

public static void main(String[] args) throws Exception{
WebDriver driver=new FirefoxDriver();
WebElement wb;
try{
driver.get("http://www.timesjobs.com/");
driver.manage().window().maximize();
System.out.println("Old window "+driver.getTitle());
String old=driver.getWindowHandle();
driver.findElement(By.xpath("//li[1][@class='bdr-left']/a")).click();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
for(String newi:driver.getWindowHandles()){
driver.switchTo().window(newi);}
System.out.println("New window "+driver.getTitle());
wb=driver.findElement(By.xpath(".//*[@id='GB_window']/div[2]/iframe"));
driver.switchTo().frame(wb);
wb=driver.findElement(By.xpath(".//*[@id='j_username']"));
wb.click();
wb.sendKeys("shantanunandan@gmail.com");
driver.switchTo().defaultContent();
driver.switchTo().window(old);
System.out.println("Old window "+driver.getTitle());
}//try
catch(Exception e){
e.printStackTrace();
driver.close();
//driver.quit();
}//catch
finally{
driver.close();
//driver.quit();
}//finally
}//main
}//class

在上面代码的帮助下,我试图在 webelement 名称中发送一些数据作为登录。在这里,我试图在登录 ID 字段中发送一些值,但是当我单击登录按钮时,会打开一个弹出窗口。当我右键单击弹出窗口时,我得到一个选项,上面写着这个框架,然后我就知道它是一个框架。我尝试使用 driver.switchTo().frame(wb); 切换到它,其中 wb 具有框架的路径。当我运行代码时,我得到了 NOSuchElement exception for the loginid fails 这意味着 webdriver 无法将控制权传递给框架。

我该如何解决这个问题?

最佳答案

您错过了切换到另一个 iframeGB_frame,其中您的 textbox: username 存在于此父级 iframe :- GB_frame1

请将以下内容添加到您现有的 switchTo() frame 代码中,如下所示:

driver.switchTo().frame(driver.findElement(By.xpath("//iframe[@id='GB_frame1']")));
driver.switchTo().frame(driver.findElement(By.xpath("//iframe[@id='GB_frame']")));

没有必要 switchTo 窗口,因为它只是一个窗口。您还可以使用 id 而不是 xpath 来定位 iframes

关于java - 无法访问弹出新窗口中框架内的网络元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23930585/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com