0

我遇到了与 webdriver-manager npm 模块一起使用的 Selenium 独立 webdriver 的问题。我正在使用 Firefox Gecko 驱动程序。我需要从 HTML 文件输入组件中选择一个文件。当我在本地计算机或 BrowserStack 上尝试此操作时,出现错误:

“WebDriverError:找不到文件:/Users/christophergrigg/a.pdf”

const requestFile = By.id('requestFile');
driver.wait(until.elementLocated(requestFile));
const requestFileEl = driver.findElement(requestFile);
driver.wait(until.elementIsVisible(requestFileEl), TIMEOUT).click();
requestFileEl.sendKeys('/Users/christophergrigg/a.pdf');
requestFileEl.sendKeys(webdriver.Key.ENTER);

在浏览器堆栈上,我正在使用此路径:

requestFileEl.sendKeys('C:\\Desktop\\documents\\pdf-sample2.pdf'); // Windows 7 / 8 / 8.1
4

1 回答 1

2

您需要提供文件的完整路径。如果文件不在运行远程实例的机器上,您还必须将文件检测器设置为自动上传文件。

在 Mac OS X 上:

var remote = require('selenium-webdriver/remote');
driver.setFileDetector(new remote.FileDetector);
driver.sendKeys('/Users/christophergrigg/Desktop/a.pdf');

,或窗口:

var remote = require('selenium-webdriver/remote');
driver.setFileDetector(new remote.FileDetector);
driver.sendKeys('C:\\Users\\christophergrigg\\Desktop\\a.pdf');
于 2017-09-14T12:06:39.303 回答