Solution:
1> Install AutoIT V3.2, not the latest version, like V3.3.6, BTW, you had better install AutoIT to its default folder:"C:\Program Files\AutoIt3"
2> Download jWinAuto
3> Add all .jars to your libs, including jna.jar and jAutoIt.jar within jWinAuto
4> Write your testing code
I put the Watir scripts in comments for each steps, FYI:
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import com.compdev.jautoit.autoitx.autoitx;
public class AutoIT {
public static void main(String[] args) throws InterruptedException {
//ai = WIN32OLE.new("AutoItX3.Control")
autoitx ai = autoitx.INSTANCE;
//ie=FireWatir::Firefox.new
WebDriver driver = new FirefoxDriver();
//ie.goto("http://www.autoitscript.com/autoit3/downloads.shtml")
driver.get("http://www.autoitscript.com/autoit3/downloads.shtml");
//ie.image(:alt,'Download AutoIt').click
driver.findElement(By.cssSelector("img[alt=\"Download AutoIt\"]")).click();
//res=ai.WinWait("Opening autoit-v3-setup.exe","",10)
int res = ai.AU3_WinWait("Opening autoit-v3-setup.exe","",10);
// if res = 1, then it shows you find the window with proper title
System.out.print("res" + res);
Thread.sleep(3000);
//res=ai.WinActivate("Opening autoit-v3-setup.exe")
ai.AU3_WinActivate("Opening autoit-v3-setup.exe","");
ai.AU3_Send("{TAB}",0);
Thread.sleep(3000);
ai.AU3_Send("{TAB}",0);
Thread.sleep(3000);
ai.AU3_Send("{ENTER}",0);
//Start file downloading...
}
}
So you can use AutoIT in WebDriver to deal with your Win32(disgusting) pop-ups or other situations, easily! Want to know how powerful the AutoIT is, please refer to its function reference :)BTW, just realize WebDriver is implementing a batch of GUI event driven APIs, Cool!
Hi Cheng, I've implented this into a maven project that is running remote automated tests but for whatever reason my autoIT commands aren't doing what they should?
ReplyDeletepublic void autoIT()
{
autoitx ai = autoitx.INSTANCE;
ai.AU3_Send("{PRINTSCREEN}", 0);
}
I would expect a simple function like that to work but it doesn't. Any ideas?