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

时间:2016-11-28 07:49:53

标签: selenium selenium-webdriver

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

但是现在我在浏览器窗口上有一个外部应用程序,它会因其他测试而烦恼。

那么,围绕这类问题的最佳做法是什么?重写申请是否允许不在考试中打开文件?

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

2 个答案:

答案 0 :(得分:0)

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

driver.navigate().back();

希望这有帮助。

答案 1 :(得分:0)

我从行中了解

'但是现在我在浏览器窗口上有一个外部应用程序,它会因其他测试而烦恼。'

一旦用户点击打开按钮,就会打开一个新窗口(基于窗口的应用程序),因为你提到了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。