如何在Chromedriver/Selenium for Node.js中模拟键盘事件?
我正在尝试将图像文件自动上载到我没有更好的访问方式(FTP等)的服务器。我将Node.js与Selenium和Chromedriver一起使用,在我需要模拟特殊键之前,一切都进展顺利。我做了一些研究,到目前为止没有发现任何东西。Mac特定的答案对此没有问题 我在别的地方尝试过这个答案,但它对我不起作用:如何在Chromedriver/Selenium for Node.js中模拟键盘事件?,node.js,selenium,selenium-chromedriver,Node.js,Selenium,Selenium Chromedriver,我正在尝试将图像文件自动上载到我没有更好的访问方式(FTP等)的服务器。我将Node.js与Selenium和Chromedriver一起使用,在我需要模拟特殊键之前,一切都进展顺利。我做了一些研究,到目前为止没有发现任何东西。Mac特定的答案对此没有问题 我在别的地方尝试过这个答案,但它对我不起作用: driver.findElement(webdriver.By.name(uploadName)) .click() .sendKeys(Keys.COMMAND
driver.findElement(webdriver.By.name(uploadName))
.click()
.sendKeys(Keys.COMMAND + Keys.SHIFT + 'g')
.sendKeys(imgPath)
.sendKeys(Keys.RETURN);
它失败了,因为键未定义,但我还没有找到任何其他方法来获取命令。经过进一步研究,这似乎是错误的方法。Selenium和Chromedriver并不真正支持操作系统级的交互,但有一种更简单的方法
driver.findElement(webdriver.By.name(uploadName)).sendKeys(imgPath);
这将以uploadName为目标,然后为其提供传递到sendKeys的文件路径。这将绕过杂乱的操作系统文件对话框。您需要这些命令做什么?。你是想从剪贴板粘贴文件路径还是什么?特别是我需要向“文件打开”对话框发送密钥。CMD+SHIFT+G打开文件路径对话框,以便我可以发送文件路径的键。