这是什么样的窗口,我如何使用Selenium处理它? AutoIt的?

时间:2016-05-09 18:34:21

标签: java selenium-webdriver

我有一个Windows Detective声称是“MozillaDialogClass”窗口的对话框,我当然正在Firefox中进行测试。

这是窗口的图像。

enter image description here

AutoIt IDE无法识别它。 Windows Defender无法看到它的任何属性,因此我不知道它的名称或其他任何内容。其中一位开发人员称这是一个特定于浏览器的窗口。 (无论如何,如果这是为什么看不到任何东西?)。

任何人对此都有任何想法吗?我很难过。

3 个答案:

答案 0 :(得分:1)

处理此问题的最佳方法是使用SikuliX。下面是使用SikuliX的示例场景。基本上,SikuliX可以自动化您在运行Windows,Mac或某些Linux / Unix的台式计算机屏幕上看到的任何内容。它使用由OpenCV提供支持的图像识别来识别和控制GUI组件。如果无法轻松访问GUI内部或您想要操作的应用程序或网页的源代码,这将非常方便。

下面是一个hello world示例。点击屏幕上的聚光灯图标,等待聚光灯的输入窗口出现,然后键入“hello world”并点击ENTER。

import org.sikuli.script.*;

public class TestSikuli {

    public static void main(String[] args) {
            Screen s = new Screen();
            try{
                    s.click("imgs/spotlight.png", 0);
                    s.wait("imgs/spotlight-input.png");
                    s.type(null, "hello world\n", 0);
            }
            catch(FindFailed e){
                    e.printStackTrace();
            }

    }

 }

你可以找到sikuli here

答案 1 :(得分:0)

这是来自您的webbrowser的本机Dialog。因此,使用Selenium处理这个问题并不容易。你想用它测试什么?

对于某些阅读,请参阅此问题: https://sqa.stackexchange.com/questions/2197/how-to-download-a-file-using-seleniums-webdriver

答案 2 :(得分:0)

您可以将Firefox设置为自动将文件下载到文件夹中,而不是处理下载窗口:

FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("pdfjs.disabled", true);  // disable the built-in viewer
profile.setPreference("browser.download.folderList", 2);
profile.setPreference("browser.download.dir", "C:\\Windows\\temp");
profile.setPreference("browser.download.panel.shown", false);
profile.setPreference("browser.helperApps.neverAsk.openFile", "");
profile.setPreference("browser.helperApps.neverAsk.saveToDisk", "application/vnd.ms-excel");

WebDriver driver = new FirefoxDriver(profile);
driver.get("http://www.exinfm.com/free_spreadsheets.html");
driver.findElement(By.linkText("Capital Budgeting Analysis")).click();

或者使用默认应用程序自动打开文件:

FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("pdfjs.disabled", true);  // disable the built-in viewer
profile.setPreference("browser.download.folderList", 2);
profile.setPreference("browser.download.panel.shown", false);
profile.setPreference("browser.helperApps.neverAsk.openFile", "application/vnd.ms-excel");
profile.setPreference("browser.helperApps.neverAsk.saveToDisk", "");

WebDriver driver = new FirefoxDriver(profile);
driver.get("http://www.exinfm.com/free_spreadsheets.html");
driver.findElement(By.linkText("Capital Budgeting Analysis")).click();

请注意,您需要通过您的文件更新MIME类型(此处为application/vnd.ms-excel)。 MIME类型是响应标头中的Content-Type

如果您只想关闭对话框,那么我会使用AutoIt:

WinWait("[CLASS:MozillaDialogClass]", "", 10)
WinClose("[CLASS:MozillaDialogClass]")