Selenium webdriver driver.windowHandles无法提供子窗口id
当我点击链接文本时,它将打开新的子窗口,然后我希望传递输入 子窗口。我可以打开新的子窗口,但找不到子窗口html属性,甚至在驱动程序中找不到子窗口id。windowHandles,它总是只返回父窗口id 我尝试了driver.WindowHandles.Last() 我试过下面的代码Selenium webdriver driver.windowHandles无法提供子窗口id,selenium-webdriver,Selenium Webdriver,当我点击链接文本时,它将打开新的子窗口,然后我希望传递输入 子窗口。我可以打开新的子窗口,但找不到子窗口html属性,甚至在驱动程序中找不到子窗口id。windowHandles,它总是只返回父窗口id 我尝试了driver.WindowHandles.Last() 我试过下面的代码 System.Collections.ObjectModel.ReadOnlyCollection<string> window = driver.WindowHandles; foreach (str
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);
}
}
System.Collections.ObjectModel.ReadOnlyCollection window=driver.WindowHandles;
foreach(窗口中的字符串strwindow)
{
如果(!title.Equals(driver.title))
{
driver.SwitchTo()窗口(strwindow);
}
其他的
{
driver.SwitchTo()窗口(主窗口);
}
}
请任何人建议我获取childwindow id以及如何将我的输入传递到childwindow。这对我有很大帮助。关于您的问题的解决方案,请讲几句:
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());
String parent_window=driver.getWindowHandle();
System.out.println(“切换标题前为:“+driver.getTitle()”);
findElement(By.xpath(“to_open_child_window”))。单击();
Set s1=driver.getWindowHandles();
迭代器i1=s1.Iterator();
while(i1.hasNext())
{
字符串child_window=i1.next();
if(!父窗口.equalsIgnoreCase(子窗口))
{
driver.switchTo()窗口(子窗口);
//在这里诱导一些等待元素渲染
System.out.println(“切换标题后为:“+driver.getTitle()”);
//执行其他任务
driver.close();
}
}
driver.switchTo()窗口(父窗口);
System.out.println(“返回父窗口:+driver.getTitle());
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());