1

最近我从 Selenium RC 迁移到 Webdriver。用于在 Selenium RC 上正常工作的包含分隔符 TAB 的键入文本。但是在使用 webdriver 时,键入 tab 会将焦点移动到下一个输入。

示例文本 :

Name    Age
Mark    35

我做了以下事情:

    if(text.contains("\t"))
    {
      data = text.split("\t");
      for (String str : data)
      {
        element.sendKeys(str);
        element.sendKeys(Keys.TAB);
      }
    }
    else
    {
      element.sendKeys(text);
    }

我尝试使用elements.sendKeys("\t")以及elements.sendKeys("\\t").

关于如何实现这一目标的任何建议?

提前致谢。

4

2 回答 2

2

您可以使用 Actions 类进行高级操作。参考这个网站 http://www.guru99.com/keyboard-mouse-events-files-webdriver.html

于 2013-06-16T11:07:07.557 回答
1

正如评论中已经说过的,使用sendKeys就像您是浏览器的普通用户一样。这意味着浏览器将专注于下一个输入。如果你真的需要在输入中添加一个 TAB,我认为解决方案是执行 JavaScript

JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("document.getElementById('" + inputId + "').value = '\\t';");
于 2013-06-15T04:35:53.930 回答