使用webdriverio v5在msedge中上传文件



我正在使用webdriverio v5在stodLabs中运行一个自动化测试。我想运行一个测试,它正在上传一个文件到msedge。下面是相同的示例代码。

const path = require('path');
const filePath = path.join(__dirname, 'path/to/your/file');
const remoteFilePath = browser.uploadFile(filePath);
$('upload file input selector').setValue(remoteFilePath);

这段代码可以很好地使用chrome和firefox,但当我尝试在msedge中运行相同的代码时,会给出Error: The uploadFile command is not available in msedge。看起来browser.uploadFile只适用于chrome。我尝试过其他各种方法,但这些解决方案主要在本地服务器上运行,而不是在像炖锅实验室这样的远程服务器上运行。

是否有browser.uploadFile的替代方案或任何可用于在msedge浏览器中上传文件的变通方法?

出于安全原因,browser.uploadFile不可用于IE和Edge浏览器。

我建议您尝试使用下面的代码示例进行测试。

它首先找到文件上传元素,然后使用sendkey((设置控件中的路径值。

// fetch the element
WebElement input = driver.findElement(By.XPath("//input[@type='file']"));
// send file path keys
input.sendKeys(path);

如果问题仍然存在,则可以尝试以下示例。

// fetch the element
WebElement input = driver.findElement(By.XPath("//input[@type='file']"));
// run JS to reveal the element
JavascriptExecutor executor = (JavaScriptExecutor)driver;
executor.executeScript("arguments[0].style.display = 'block';", input);
// send file path keys
input.sendKeys(path);

参考:

Selenium如何将文件上传到Microsoft Edge

注意:您可能需要将上述代码转换为您的开发语言。

相关内容

  • 没有找到相关文章

最新更新