0

我想切换文件资源管理器和 Chrome 浏览器。

如何切换应用程序?

在我的代码中

   @BeforeClass
    public static void setup() {
        try {
            DesiredCapabilities capabilities = new DesiredCapabilities();
            capabilities.setCapability("app", "C:\\Windows\\explorer.exe");
            ExplorerSession = new WindowsDriver(new URL("http://127.0.0.1:4723"), capabilities);
            ExplorerSession.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS);
            actions = new Actions(ExplorerSession);
            modules = new Modules(ExplorerSession);}

我可以生成新的会话吗?

我参考下一个链接

https://github.com/Microsoft/WinAppDriver/tree/v1.0#creating-a-desktop-session https://github.com/microsoft/WinAppDriver/blob/35a659232060a6e436cbb8393ae9a09bab12bc89/Samples/C%23/StickyNotesTest/StickyNotesSession 。CS

但我无法解决这个问题

Java 中没有足够的信息。

也没有找到 API 文档。请帮我。

4

2 回答 2

0

我通过使用 OP 中第一个链接中的信息来获取 NativeWindowHandle 并使用它来为每个应用程序带来焦点,从而找到了解决此问题的方法。我必须将 0x 附加到我的应用程序返回的 Handle 的前面,以便在下一次测试中将其传递给所需的功能,但否则链接中的说明对我来说效果很好。

    String NativeWindowHandle = driver.findElementByAccessibilityId("ShellForm").getAttribute("NativeWindowHandle");
    int natWinHandleInt = Integer.parseInt(NativeWindowHandle);
    String natWinHandleStr = Integer.toHexString(natWinHandleInt);
    natWinHandle = "0x"+natWinHandleStr;

    DesiredCapabilities appCapabilities = new DesiredCapabilities();
    appCapabilities.setCapability("appTopLevelWindow", natWinHandle);
    driver = new WindowsDriver<WindowsElement> (new URL("http://127.0.0.1:4723"), appCapabilities);
于 2020-07-01T02:32:46.063 回答
0

您将需要不同的 ChromeDriver 和 WindowsDriver 对象。ChromeDriver 对象将使用 Selenium 进行操作,WindowsDriver 对象将使用 WinAppDriver。我希望这有帮助。

于 2019-09-26T12:24:44.337 回答