我有一个Windows Detective声称是“MozillaDialogClass”窗口的对话框,我当然正在Firefox中进行测试。
这是窗口的图像。
AutoIt IDE无法识别它。 Windows Defender无法看到它的任何属性,因此我不知道它的名称或其他任何内容。其中一位开发人员称这是一个特定于浏览器的窗口。 (无论如何,如果这是为什么看不到任何东西?)。
任何人对此都有任何想法吗?我很难过。
答案 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]")