Java 在SeleniumWebDriver中,如何将控件切换到具有完整表单的div元素

Java 在SeleniumWebDriver中,如何将控件切换到具有完整表单的div元素,java,selenium,selenium-webdriver,Java,Selenium,Selenium Webdriver,在我的应用程序中,当我成功注册时,一个弹出表单打开,它是一个div元素,div包含一些表单字段。现在我想将我的控件切换到div,在每个字段中输入值并提交表单。 我该怎么做? 我使用了下面的代码 String parentwindowhandler= drive.getWindowHandle(); // store your parent window.. String subwindowhandler=null; Set<String> handles= drive.getWind

在我的应用程序中,当我成功注册时,一个弹出表单打开,它是一个div元素,div包含一些表单字段。现在我想将我的控件切换到div,在每个字段中输入值并提交表单。 我该怎么做? 我使用了下面的代码

String parentwindowhandler= drive.getWindowHandle(); // store your parent window..
String subwindowhandler=null;
Set<String> handles= drive.getWindowHandles();
Iterator<String> iterator= handles.iterator(); 
while(iterator.hasNext()){
    subwindowhandler= iterator.next();
}
drive.switchTo().window(subwindowhandler); // switch to child window.. 
String parentwindowhandler=drive.getWindowHandle();//存储父窗口。。
字符串子窗口处理程序=null;
Set handles=drive.getWindowHandles();
迭代器迭代器=handles.Iterator();
while(iterator.hasNext()){
subwindowhandler=iterator.next();
}
drive.switchTo().window(子WindowHandler);//切换到子窗口。。

如果我没弄错的话,您不需要在同一窗口中切换控件到DIV。例如,您只需通过id获取
WebElement

WebElement element = driver.findElement(By.id("element id"));
然后使用
sendKeys()
发送文本,或单击
click()


您也可以使用
By.id
By.name
By.xpath
…,而不是
By.id
,但使用ids是最安全的。

一般来说,新页面或框架不是新页面或框架。通常,只有在激活并且元素包含在HTML的同一页上时,才会显示代码。它可以是一个警报,也可以只是一个新窗口的外观。我猜在这种情况下新的标签不会打开?在这种情况下,不需要切换窗口。请展示一些HTML代码。你需要发布你的HTML代码。可能会有iFrame在播放