java-使用Selenium和AutoIt通过远程桌面自动化

我想自动化某些任务,需要它通过Remote Desktop Connection.

我将分享到目前为止编写的代码.

public class MainClass
{
  static WebDriverWait  wait;
  static WebDriver driver;
  public static void main(String args[])
  {
    driver = new HtmlUnitDriver(true);
    driver.get("https://mysite");
    WebElement submit_element=driver.findElement(By.id("Log_On"));
    driver.findElement(By.id("Enter user name")).sendKeys("my_username");
    driver.findElement(By.name("passwd")).sendKeys("my_password");
    submit_element.click();
    driver.findElement(By.id( "folderLink_0")).click();
    driver.findElement(By.id( "folderLink_2")).click();
    driver.manage().timeouts().implicitlyWait(100, TimeUnit.SECONDS);
    System.out.println(driver.getPageSource());
    driver.findElement(By.id("idCitrix.M")).click();
    System.out.println(driver.getPageSource());
  }
}

代码行

`driver.findElement(By.id("idCitrix.M")).click();`

在新窗口中打开远程桌面.

线

`System.out.println(driver.getPageSource());`
is retrieving the same code in both places.

我相信这不能仅靠硒来完成.通过浏览Internet,我知道可以使用AutoIt进行此操作.

我该怎么做?

解决方法:

Selenium可用于使Web浏览器自动化的部件,而AutoIT应用于使Windows应用程序自动化(在您的情况下,它可能登录到远程计算机).

该链接提供了有关如何与硒一起使用AutoIT的详细信息:http://www.toolsqa.com/selenium-webdriver/autoit-selenium-webdriver/

这是您要做的:

下载/安装AutoIT
您将能够使用AutoIT SciTe Editor创建.au3脚本
编译.au3脚本会给您一个.exe文件
然后,您可以使用以下命令从Selenium脚本中调用.exe文件:

Runtime.getRuntime().exec("D:\AutoIt\AutoItTest.exe");

您可以使用AutoIT窗口信息(x86)或(x64)获取窗口的属性.例如,窗口的标题/状态栏.

AutoIT还具有Au3 Recorder,因此您可以记录与远程桌面相关的操作.

以下是自动执行Http身份验证的示例脚本:

WinWaitActive("Web page title","","10")
If WinExists("Web page title") Then
Send("userid{TAB}")
Send("password{Enter}")
EndIf

下面的脚本获取记事本状态栏中显示的文本:

WinWaitActive("Untitled - Notepad", "", 30) 
Local $hWnd = WinGetHandle("Untitled - Notepad")
Local $sText = StatusbarGetText("Untitled - Notepad","",2)
ConsoleWrite($sText) 

我希望这个信息帮助!

更新:
进一步搜索后,发现此库AutoITx4Java-https://code.google.com/p/autoitx4java/

>下载Jacob,AutoIT(请参阅上面的链接)
>将jacob.jar和autoitx4java.jar添加到您的库路径.
>将jacob-1.15-M4-x64.dll文件放在您的库路径中.

样例代码

File file = new File("lib", "jacob-1.15-M4-x64.dll"); //path to the jacob dll
System.setProperty(LibraryLoader.JACOB_DLL_PATH, file.getAbsolutePath());

AutoItX x = new AutoItX();
String notepad = "Untitled - Notepad";
String testString = "this is a test.";
x.run("notepad.exe");
x.winActivate(notepad);
x.winWaitActive(notepad);
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));
上一篇:在Python中调用AutoIt函数


下一篇:使用AutoIt实现文件上传