Selenium webdriver 如何使用Selenium Webdriver在不单击上载按钮(上载按钮不以<;input>;标记开头)的情况下上载文件。?
在运行Bambol(CI)时,我的脚本失败,因为所有“上传文件链接”都不是以输入标记开始的。我使用自动上传的文件,这是良好的本地工作,当我试图通过竹远程机器上运行它是失败的 所以我想从后端上传文件,我不想点击上传按钮 Sendkeys()已尝试,但在此场景中没有帮助Selenium webdriver 如何使用Selenium Webdriver在不单击上载按钮(上载按钮不以<;input>;标记开头)的情况下上载文件。?,selenium-webdriver,bamboo,Selenium Webdriver,Bamboo,在运行Bambol(CI)时,我的脚本失败,因为所有“上传文件链接”都不是以输入标记开始的。我使用自动上传的文件,这是良好的本地工作,当我试图通过竹远程机器上运行它是失败的 所以我想从后端上传文件,我不想点击上传按钮 Sendkeys()已尝试,但在此场景中没有帮助 那你为什么不能先试一下呢。。您的网页是否有定位文件的浏览按钮?如果是,将元素传递给locatorUpload para,并将upload button元素传递给locatorButton public void UploadFile
那你为什么不能先试一下呢。。您的网页是否有定位文件的浏览按钮?如果是,将元素传递给locatorUpload para,并将upload button元素传递给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));
}
通常在这种情况下,您需要执行3个步骤:
- 使输入[type=file]元素可见使用javascript
- 找到此输入并使用发送密钥(机器上的路径到文件)
- 使用javascript触发上传