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);
。
这是我在网上找到的 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);
。