sendKeys(Keys.TAB)无法在JMeter Webdriver Sampler中使用

时间:2015-05-07 20:26:29

标签: selenium-webdriver jmeter

我试图在文本字段中输入一个值,然后选择Tab到下一个字段(也输入值)。 Keys.TAB方法似乎不起作用。

我的代码如下:

var Keys = JavaImporter(org.openqa.selenium.Keys)

var input = WDS.browser.findElement(pkg.By.xpath('xpath_to_input'))
input.sendKeys('value')
input.sendKeys(Keys.TAB)

我收到以下错误:

sun.org.mozilla.javascript.internal.EvaluatorException: Can't find method org.openqa.selenium.remote.RemoteWebElement.sendKeys(string). <Unknown source>

感谢您的帮助。我尝试了各种各样的东西,但是不行。

2 个答案:

答案 0 :(得分:2)

除了ekuusela建议的还有2个选项:

  1. 使用\t转义序列,如:

    input.sendKeys('value\t');
    
  2. 使用java.awt.Robot方法如下:

    input.sendKeys('value')
    var robot = new java.awt.Robot()
    var keyEvent = java.awt.event.KeyEvent
    robot.keyPress(keyEvent.VK_TAB)
    robot.keyRelease(keyEvent.VK_TAB)
    
  3. 请记住,“机器人”方法在执行它的机器上模拟本机键和鼠标事件,因此如果您使用远程webdriver实例,它将无法播放。

    有关更多WebDriver采样器提示和技巧,请参阅The WebDriver Sampler: Your Top 10 Questions Answered指南。

答案 1 :(得分:1)

如果使用Java 6,则必须在数组中传递字符串,如下所示:

var input = WDS.browser.findElement(pkg.By.xpath('xpath_to_input'))
input.sendKeys(['value'])
input.sendKeys([Keys.TAB])

http://jmeter-plugins.org/wiki/WebDriverSampler/