1

我想在Selenium IDE(从Firefox插件)测试自动完成的地方(谷歌地方给出)。我需要输入输入地名并获得第一个地点。
谷歌地方自动完成与硒IDE测试

序列的地方“热舒夫,波兰”: i.stack.imgur.com/gqRMd.png

首先我试过鼠标悬停和点击动作 - 元素存在,但并没有做出点击自动完成。接下来,我尝试了两个序列(使用clickAt和KeyDown),但也没有点击,尽管Selenium可以找到正确的定位器。 i.stack.imgur.com/F13q7.png

我正在尝试我的jQuery自动完成解决方案 - > jqueryui.com/autocomplete/,它在那里工作得很好。

我认为,问题与HTML结构中地名连接,以大胆: i.stack.imgur.com/BfLyE.png

您可以测试它:jsfiddle.net/dodger/pbbhH/

我在Selenium IDE中的序列(如上所示)不适用于谷歌的地方,任何人都可以用自动完成解决这个问题吗?

//主持人:请添加照片并创建链接到我的文章,并删除此行。谢谢。

+0

今天我一直在试图自己找到解决方案。试着用Selenium Server来试试看看我能否解决它。 – Toby 2013-04-24 02:06:01

回答

3

要强制显示位置自动完成列表,我必须将单个keydown和keyup事件发送到输入字段。就像这样:

selenium.focus(LOCATOR); 
    selenium.type(LOCATOR, ""); // clear the field 
    for (int i=0; i<value.length(); i++) { 
     String c = String.valueOf(value.charAt(i)); 
     selenium.keyDown(LOCATOR, c.toUpperCase()); 
     selenium.keyPress(LOCATOR, c); 
     selenium.keyUp(LOCATOR, c.toUpperCase()); 
    } 

最后,要选择列表中的条目,我知道了通过模拟键盘事件的工作(因为我也有与鼠标事件没有运气)。

  1. 的keyDown用箭头向下键:在输入域selenium.keyDown(LOCATOR, "\u0028");
  2. 模糊(可选我认为):selenium.fireEvent(LOCATOR, "blur");

LOCATOR是您输入字段定位器。 \u0028是向下箭头的关键代码(十六进制28或十进制40)

希望这有助于。