[Selenium] Upload File on Remote Node Machines

Problem: 

In web UI automation testing, we always need to upload files, it will work well on local machines, but doesn't work on remote node machines when using Seleniuim Grid to run.

Solution:

No
Description
Recommendation Index
1

1.Use PathUtils to get file's path under project

2.Convert input WebElement to RemoteWebElement

3.Call setFileDetector for the RemoteWebElement

4.Call sendKeys for input WebElement

Note: for input element

(红色星星)(红色星星)(红色星星)(红色星星)(红色星星)
2

1.Copy upload file to a share folder

2.Call sendKeys with above file path in share folder

(红色星星)(红色星星)(红色星星)

Code:

Solution 1:

String filePath = pathUtils.getFilePathFromResources(fileName);

public void uploadDocument(String filepath) {
    WebElement button = page.getUploadDocument();
    ((RemoteWebElement) button ).setFileDetector(new LocalFileDetector());
    button.sendKeys(filepath);
}

Solution 2:

原文地址:https://www.cnblogs.com/MasterMonkInTemple/p/12144522.html