如何使用硒在桌面应用程序中从第二个窗口切换到第三个窗口

时间:2019-05-09 07:33:16

标签: java selenium-webdriver

我正在Windows应用程序(医院管理应用程序)上工作,希望将控制从主窗口切换到第二窗口,从第二窗口切换到第三窗口,并使用Selenium(winapp驱动程序)在第三窗口上执行操作。

我已经

  • 在主窗口上执行操作(登录)-完成
  • 在第二个窗口上执行了一个操作(单击按钮)-完成

现在我在第三个窗口中,无法像单击按钮一样对其执行操作。

(我正在使用硒Java代码)

String parent_window = windriver.getWindowHandle();
Set<String> allWindows = windriver.getWindowHandles();
int count = allWindows.size();
System.out.println("Now Total Windows : "+count);
for(String child_1:allWindows)
    if(!parent_window.equalsIgnoreCase(child_1))
        windriver.switchTo().window(child_1);
System.out.println(windriver.getTitle());
Actions builder = new Actions(windriver);
org.openqa.selenium.interactions.Action mouseOverHome;
mouseOverHome =builder.moveToElement(windriver.findElementByClassName("WindowsForms10.BUTTON.app.0.19fd5c7_r1354685_ad1"), 62, 10).build();
mouseOverHome.perform();
builder.click().perform();
Thread.sleep(6000);
String child1_window = windriver.getWindowHandle();
System.out.println("Child 1 Window ID is : "+child1_window);

Set<String> all_Windows = windriver.getWindowHandles();
int count_final = all_Windows.size();
System.out.println("Now Total Windows : "+count_final);
for(String child_2:all_Windows)
    if(!parent_window.equalsIgnoreCase(child_2) && !child1_window.equalsIgnoreCase(child_2))
        windriver.switchTo().window(child_2);
String child2_window = windriver.getWindowHandle();
System.out.println("Child 2 Window ID is : "+child2_window);

所需结果:  要单击显示在第三个窗口上的按钮。

0 个答案:

没有答案