AutoItX 功能无法与 eclipse 中的 java 中的 Selenium WebDriver 一起正常工作

AutoItX functions not working properly with Selenium WebDriver in java in eclipse

这是我在网上找到的 2 个关于自动化记事本和计算器应用程序的标准程序。我是 AutoIt 的新手,正在尝试学习此脚本并直接在 eclipse (java) 中练习编码,而不使用 autoIt 脚本编辑器和编译等

问题是计算器代码 运行 没问题,记事本应用程序根本打不开。事实上,记事本在任务管理器的背景中显示为应用程序 运行,但未显示。我也试过写字板,也是打不开

在计算器代码中,winClose 函数不适用于 window 句柄参数,但仅接受 window 标题。此外,@SW_SHOW 标志和 winSetState 函数中的其他此类参数未被识别并声明为“无法解析为变量。

我需要导入任何东西吗? Windows 8.1(64 位)和 windows 7(32 位)也发生了同样的问题。我正在使用 Eclipse Luna for Selenium WebDriver 和 TestNG。

eclipse & java是否不兼容所有AutoItX功能?

package autoit_trial;

import java.io.File;
import org.testng.Assert;
import autoitx4java.AutoItX;
import com.jacob.com.LibraryLoader;

public class Calculator {

    public static void main(String[] args) {

    File file = new File("lib","jacob-1.18-M2-x64.dll");
    System.setProperty(LibraryLoader.JACOB_DLL_PATH, file.getAbsolutePath());
    AutoItX x = new AutoItX();    
    /*
    x.run("calc.exe");
    x.winActivate("Calculator");
    x.winWaitActive("Calculator");
    x.controlClick("Calculator", "", "133");
    x.sleep(1000);
    x.controlClick("Calculator", "", "92");
    x.sleep(1000);
    x.controlClick("Calculator", "", "137");
    x.sleep(1000);
    x.controlClick("Calculator", "", "121");
    x.sleep(1000);
    String winhand = x.winGetHandle("Calculator","");
    System.out.println(winhand);
    x.winClose("Calculator","");
    */
    x.run("notepad.exe");
    String notepad = "Untitled - Notepad";
    String testString = "this is a test.";
    x.winActivate(notepad);
    // x.winSetState(notepad, testString, @SW_SHOW);
    x.winWaitActive(notepad,"",10);
    x.send(testString); 
    Assert.assertTrue(x.winExists(notepad, testString)); 
    x.winClose(notepad, testString);
    x.winWaitActive("Notepad");
    x.send("{ALT}n");
    Assert.assertFalse(x.winExists(notepad, testString)); 

    } 
}

这是 运行 上面代码的错误

Exception in thread "main" java.lang.AssertionError: expected [true] but found [false]
at org.testng.Assert.fail(Assert.java:94)
at org.testng.Assert.failNotEquals(Assert.java:494)
at org.testng.Assert.assertTrue(Assert.java:42)
at org.testng.Assert.assertTrue(Assert.java:52)
at autoit_trial.Calculator.main(Calculator.java:39)

我已经成功解决了这个问题。 需要在 x.run("notepad.exe"); 命令中添加 @SW_SHOW 标签。即 x.run("notepad.exe","",AutoItX.SW_SHOW);