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

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

您将能够使用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)

我希望这个信息帮助!

>下载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));

标签:selenium,autoit,java

来源: https://codeday.me/bug/20191120/2044874.html

autoit java_java-使用Selenium和AutoIt通过远程桌面自动化相关推荐

  1. selenium通过autoit实现上传和下载

    autoit安装目录如下: AutoIt Windows Info   用于帮助我们识Windows控件信息. Compile Script to.exe 用于将AutoIt生成 exe 执行文件. ...

  2. 转 虫师的selenium借助AutoIt识别上传(下载)详解

    selenium借助AutoIt识别上传(下载)详解 2014-12-27 11:26 by 虫师, 755 阅读, 1 评论, 收藏,  编辑 AutoIt目前最新是v3版本,这是一个使用类似BAS ...

  3. frp与nginx结合,实现内网设备的ssh,远程桌面和http访问

    博客搬运自我的个人博客 chantAria的博客 精力有限,新博客我会同步到CSDN,但博客内容的更新只会出现在个人博客 欢迎大家来玩耍哦! 前言 一年前因为selenium运行问题在阿里云租用了一台 ...

  4. 外网远程桌面连接设置

    外网远程桌面连接设置 听语音 浏览:14925 | 更新:2016-08-09 11:33 返回 暂停 重播 播放 x <div class="jw-preview jw-reset& ...

  5. usb禁止重定向_远程桌面中的USB重定向技术解析(功能篇)

    在运行远程和虚拟桌面的数据中心内,网络管理员可以对计算环境的各个方面进行控制.只有一点除外,就是本地外围设备. 本地外围设备包括所有连接到终端上的设备,例如USB驱动器.鼠标或打印机.它们逐渐成为终端 ...

  6. mac访问linux桌面文件夹路径,mac下“远程桌面”访问linux

    有一天,坐在pc机前敲代码,脑袋突然闪过一个高端的画面,然后自我反省:为什么我只能蜷在台式机前噼里啪啦,而不能靠沙发.腿蹬茶几.手捧MBA噼里啪啦呢? 首先MBA没有安装开发环境,但台式机上装着deb ...

  7. windows xp远程桌面没有反应

    今天发现windows xp远程桌面连接没有反应,看了3389端口都打开了. 日志里面有多条RDPDD.DLL Failed to Load,查了一下结果是ati显卡或nv显卡驱动程序造成的,确实是没 ...

  8. 远程桌面linux服务器配置,linux平台下远程桌面服务器的安装和设置

    一.xdm 方式 前提:安装linux时一定要选上xwindow,这是最基本的前提,不安装它,是绝对没有图形界面的. ***************************************** ...

  9. MSLicensing​中断远程桌面连接

    --------------------------- 中断远程桌面连接 --------------------------- 客户端无法建立跟远程计算机的连接. 导致这个错误的可能的原因是: 1) ...

最新文章

  1. Java Learning:并发中的同步锁(synchronized)
  2. ios 调试的相关内容收集
  3. XP快速启动栏里的显示桌面没有了,其他的都还在,应该怎么再添加进去?
  4. 笔记-知识产权与标准化知识-计算机软件可靠性和可维护性管理的评审要求
  5. CCF BDCI 技术需求与技术成果关联度冠军分享
  6. 查看线上环境中的jvm参数
  7. 文件的输入和输出:流和缓冲区的概念和文件操作函数总结
  8. vue垂直布局_vue实现长图垂直居上 vue实现短图垂直居中
  9. u盘在磁盘管理可以显示 但是电脑中找不到_U盘无法识别怎么办?试试这种方法,没准还有救!...
  10. 有关于iphone 音频 录制 播发
  11. wait()和sleep()区别(常见面试题)
  12. 数学方法论选讲---第一章 引论
  13. 【pytest之allure测试报告使用】
  14. 由浅入深MFC学习摘记--第三部分
  15. VS Code快速实现Git PR操作
  16. 2022年二级建造师报名需要准备什么
  17. Android --- 5G网络,jetpack库
  18. 在路上:安全公司“跨界”SD-WAN
  19. 经典二十四点程序游戏
  20. GEO数据挖掘(一)基础介绍

热门文章

  1. 【TIDB】TIDB数据类型详解
  2. 决策树:什么是基尼系数(“杂质 增益 指数 系数”辨析)
  3. Java向将指定文件(含文件列表)或者指定路径下目录打包成zip格式
  4. 如何看文献(个人经验)
  5. 集合 Transformer(Set Transformer)
  6. 自注意机制中添加局部信息
  7. TensorFlow2-高阶操作(八):gather/gather_nd(已知元素的位置,从张量中提取该元素)、scatter_nd/scatter_nd_update(已知赋值位置,向0张量中赋值)
  8. c语言menu是什么函数,里面的menu:和menu11,memu12都是啥意思
  9. 为什么用void*做参数
  10. ipv6 neighbors 下fe80开头的地址