Selenium webdriver sendKeys(Keys.TAB)在JMeter Webdriver采样器中不工作

Selenium webdriver sendKeys(Keys.TAB)在JMeter Webdriver采样器中不工作,selenium-webdriver,jmeter,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) input.sendKey

我试图在一个文本字段中输入一个值,然后在下一个字段(该字段也输入该值)上单击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)
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)
我得到以下错误:

sun.org.mozilla.javascript.internal.EvaluatorException: Can't find method org.openqa.selenium.remote.RemoteWebElement.sendKeys(string). <Unknown source>
sun.org.mozilla.javascript.internal.EvaluatorException:找不到org.openqa.selenium.remote.RemoteWebElement.sendKeys方法(字符串)。

谢谢你的帮助。我尝试了各种方法,但都不起作用。

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

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

除了ekuusela建议的之外,还有两种选择:

  • 使用
    \t
    转义序列,如:

    input.sendKeys('value\t');
    
  • 使用以下方法:

    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)
    
    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)
    
  • 记住,“Robot”方法在执行它的机器上模拟本机键和鼠标事件,因此如果使用远程webdriver实例,它将不会播放

    有关WebDriver采样器的更多提示和技巧,请参阅指南