如何在Chromedriver / Selenium中为Node.js模拟键盘事件?

时间:2014-10-02 20:25:41

标签: node.js selenium selenium-chromedriver

我正在尝试自动将图像文件上传到我没有更好的访问形式(FTP等)的服务器。我正在将Node.js与Selenium和Chromedriver一起使用,一切顺利,直到我需要模拟特殊键。我研究了一下,到目前为止一无所获。 Mac的具体答案是可以的。

我从某个地方的另一个答案尝试了这个,但它对我不起作用:

driver.findElement(webdriver.By.name(uploadName))
        .click()
        .sendKeys(Keys.COMMAND + Keys.SHIFT + 'g')
        .sendKeys(imgPath)
        .sendKeys(Keys.RETURN);

它失败了,因为Keys未定义,但我没有遇到任何其他方法来获取命令。

1 个答案:

答案 0 :(得分:0)

经过进一步研究,似乎这是错误的做法。 Selenium和Chromedriver并不真正支持操作系统级别的交互,但有一种更简单的方法。

driver.findElement(webdriver.By.name(uploadName)).sendKeys(imgPath);

这将定位 uploadName ,然后将其传递给 sendKeys 的文件路径。这绕过了凌乱的OS文件对话框。