[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

[Selenium] Upload File on Remote Node Machines[Selenium] Upload File on Remote Node Machines[Selenium] Upload File on Remote Node Machines[Selenium] Upload File on Remote Node Machines[Selenium] Upload File on Remote Node Machines
2

1.Copy upload file to a share folder

2.Call sendKeys with above file path in share folder

[Selenium] Upload File on Remote Node Machines[Selenium] Upload File on Remote Node Machines[Selenium] Upload File on Remote Node Machines

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:

[Selenium] Upload File on Remote Node Machines

相关推荐