1

我正在尝试在 Selenium IDE(来自 Firefox 插件)中测试自动完成位置(来自谷歌位置)。我需要输入地名并获取第一个位置。

地点“Rzeszów, Polska”的序列:i.stack.imgur.com/gqRMd.png

首先,我尝试了 mouseOver 和 Click 动作 - 元素存在但没有点击自动完成。接下来,我尝试了另外两个序列(使用 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 中的序列(如上所示)不适用于 google 地方,有人可以通过自动完成解决这个问题吗?

//主持人:请添加照片并创建指向我帖子的链接并删除此行。谢谢。

4

1 回答 1

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 或 dec 40)

希望这可以帮助。

于 2013-06-03T14:42:11.637 回答