2014-05-21 75 views
0

我正在用WebDriver API创建一个应用程序进行非回归测试。AWT机器人 - 我找不到元素

有一刻,我必须在我的电脑上找到一个元素(fic)(用Windows的导航器),而我不能(或者我只是失败了:P)用WebDriver来做到这一点。

所以我正在寻找,我找到了awt.Robot。但是这个机器人只需点击一个[px,px]位置。怎么说?点击搜索栏,点击名称为“A”的元素,点击“确定”按钮? (所有这些元素都是Windows的元素。) 感谢您的帮助!

+0

Webdriver无法执行此操作,因为它只能与Web浏览器元素进行交互,就像在Web浏览器中呈现的那些元素一样。使用“Robot()”类是正确的方法,但您必须以艰难的方式完成,并提供您想要单击的位置的像素位置。 –

+0

好吧,我找到了一种方法,THX! [这里](http://stackoverflow.com/questions/6091531/how-to-get-the-x-and-y-of-a-program-window-in-java)但现在我怎么能按'\ '为了创造一条道路?当我这样做:“robot.keyPress(KeyEvent.VK_BACK_SLASH);”出错:“java.lang.IllegalArgumentException:无效的密钥代码”,但提供代码“robot.keyPress(KeyEvent.VK_COLON);”它的工作原理。为什么? – pikameuh

回答

0

解决方案(对我来说)是使用this exemple来根据名称获取窗口的位置+尺寸。

int[0] = X
int[1] = Y
int[2] = width
int[3] = height

在第二次,我用moveMouse()的awt.Robot在良好的位置,然后点击()或者放置好的人物。

对于 '/' 斜线,我使用:

robot.keyPress(KeyEvent.VK_SHIFT);
robot.keyPress(KeyEvent.VK_COLON);
robot.keyRelease(KeyEvent.VK_COLON);
robot.keyRelease(KeyEvent.VK_SHIFT);

我希望这可以帮助别人。