如何上传文件而不使用Selenium Webdriver点击上传按钮(上传按钮不以<input />标签开头)。

时间:2015-06-15 09:18:50

标签: selenium-webdriver bamboo

在通过bamboo(CI)运行时,我的脚本在所有“上传文件链接”未以输入标记开头的情况下失败。我正在使用Auto IT上传本地工作正常的文件,当我尝试在远程计算机上运行Bamboo时,它在那里失败了。

所以想要从后端上传文件,我不想点击上传按钮。

Sendkeys()在这种情况下尝试但没有帮助。

提前举手

2 个答案:

答案 0 :(得分:0)

为什么你不能尝试这个..你的网页是否有浏览按钮到定位文件?如果是,则将元素传递给locatorUpload para并将上传按钮元素传递给locatorButton

public void UploadFile(By locatorUpload, By locatorButton, String filePath){

        driver.findElement(locatorUpload).sendKeys(filePath);
        waitForElementClickable(driver, locatorButton, 4);
        driver.findElement(locatorButton).click();

    }

public void waitForElementClickable(WebDriver driver, By locator, Integer timeoutInSeconds){
    WebDriverWait wait = new WebDriverWait(driver, timeoutInSeconds);
    wait.until(ExpectedConditions.elementToBeClickable(locator));
}

答案 1 :(得分:0)

嗯,通常在这种情况下你需要做3个步骤:

  • 使输入[type = file]元素可见使用javascript
  • 找到此输入并使用send_keys(PATH_TO_FILE_ON_YOUR_MACHINE)
  • 使用javascript触发上传