当我点击链接文本时,它将打开新的子窗口,然后我想要传递输入 儿童的窗户。我能够打开新的子窗口,但无法找到子窗口html属性,甚至无法在 driver.windowHandles 中找到子窗口ID,它始终只返回父窗口ID。
我尝试使用driver.WindowHandles.Last()
string lastwindow = driver.WindowHandles.Last();
driver.SwitchTo().Window(lastwindow);
我尝试使用以下代码
System.Collections.ObjectModel.ReadOnlyCollection<string> window = driver.WindowHandles;
foreach (string strwindow in window)
{
if (!title.Equals(driver.Title))
{
driver.SwitchTo().Window(strwindow);
}
else
{
driver.SwitchTo().Window(mainwindow);
}
}
请有人建议我获取childwindow id以及如何将我的输入传递给子窗口。对我来说是一个很大的帮助。
答案 0 :(得分:0)
关于问题解决方案的几句话:
以下是供您参考的原型代码:
String parent_window = driver.getWindowHandle();
System.out.println("Before switching Title is : "+driver.getTitle());
driver.findElement(By.xpath("to_open_child_window")).click();
Set<String> s1 = driver.getWindowHandles();
Iterator<String> i1 = s1.iterator();
while(i1.hasNext())
{
String child_window = i1.next();
if (!parent_window.equalsIgnoreCase(child_window))
{
driver.switchTo().window(child_window);
//induce some wait here for the elements to render
System.out.println("After switching title is : "+driver.getTitle());
//perform your other tasks
driver.close();
}
}
driver.switchTo().window(parent_window);
System.out.println("Back to parent Window : "+driver.getTitle());
如果这回答你的问题,请告诉我。