使用Selenium Webdriver在文本区域中键入TAB

时间:2013-06-14 20:11:00

标签: java selenium webdriver

最近我从Selenium RC迁移到了Webdriver。输入包含分隔符TAB的文本用于在Selenium RC上正常工作。但是当使用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")

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

提前致谢。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

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

JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("document.getElementById('" + inputId + "').value = '\\t';");