繁体   English   中英

如何在硒测试中处理外部应用程序?

[英]How to handle external applications in a selenium-test?

我正在编写一个测试,以在用户打开文档之前验证对用户的警告。 如果用户说他们仍想打开该文档,则该文档将在外部应用程序(pdf或word)中打开。

但是现在,我在浏览器窗口上有了一个外部应用程序,并且将其混乱以进行其他测试。

那么,围绕此类问题的最佳实践是什么? 重写应用程序以允许在测试中不打开文档?

添加的描述:问题是双重的。 1)它启动填充desctop的进程(word和acrobat),并需要来自测试从属服务器的资源2)外部进程似乎会干扰其他测试,因为(在这里猜测)它位于浏览器窗口上方。

我从您的帖子中了解到,文档(word / pdf)正在浏览器窗口中打开,因此您无法继续执行其他步骤。 如果是这样,您可以验证标题以确保在浏览器窗口中打开了该文档,并可以使用下面的代码片段向后导航。

driver.navigate().back();

希望这可以帮助。

我从这行中了解到

“但是现在我在浏览器窗口上有了一个外部应用程序,它搞砸了其他测试。”

就是说,一旦用户单击“打开”按钮,由于您提到了PDF或Word,就会打开一个新窗口(基于窗口的应用程序)。

在这种情况下,您可以使用机械手类,下面的代码段将关闭当前活动窗口:

        Robot rbt = new Robot();
        rbt.keyPress(KeyEvent.VK_ALT);
        rbt.keyPress(KeyEvent.VK_F4);
        rbt.keyRelease(KeyEvent.VK_ALT);
        rbt.keyRelease(KeyEvent.VK_F4);

确保正确处理同步问题,以便关闭预期的窗口而不是AUT。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM