首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将Firefox设置为在Katalon测试执行期间不提示下载文件?

如何将Firefox设置为在Katalon测试执行期间不提示下载文件?
EN

Stack Overflow用户
提问于 2020-01-21 23:53:12
回答 1查看 709关注 0票数 0

我正在尝试创建一个非常简单的Katalon测试用例,它打开Firefox,转到给定的URL,然后单击一个按钮来下载文件。我已经根据Katalon文档(https://github.com/katalon-studio/docs/blob/master/pages/katalon-studio/docs/introduction-to-desired-capabilities.md)设置了所需的功能,但没有成功。当我尝试下载一个文件时,出现提示,文件没有被下载。如何禁用提示并立即下载文件?

下面是软件版本、源代码和屏幕截图。

Windows 10、Katalon Studio 7.2.1、Mozilla Firefox 72.0.2、Selenium 3.141.59

代码语言:javascript
复制
import static com.kms.katalon.core.checkpoint.CheckpointFactory.findCheckpoint
import static com.kms.katalon.core.testcase.TestCaseFactory.findTestCase
import static com.kms.katalon.core.testdata.TestDataFactory.findTestData
import static com.kms.katalon.core.testobject.ObjectRepository.findTestObject
import static com.kms.katalon.core.testobject.ObjectRepository.findWindowsObject
import com.kms.katalon.core.checkpoint.Checkpoint as Checkpoint
import com.kms.katalon.core.cucumber.keyword.CucumberBuiltinKeywords as CucumberKW
import com.kms.katalon.core.mobile.keyword.MobileBuiltInKeywords as Mobile
import com.kms.katalon.core.model.FailureHandling as FailureHandling
import com.kms.katalon.core.testcase.TestCase as TestCase
import com.kms.katalon.core.testdata.TestData as TestData
import com.kms.katalon.core.testobject.TestObject as TestObject
import com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords as WS
import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI
import com.kms.katalon.core.windows.keyword.WindowsBuiltinKeywords as Windows
import internal.GlobalVariable as GlobalVariable
import org.openqa.selenium.Keys as Keys

WebUI.openBrowser('https://file-examples.com/index.php/text-files-and-archives-download/')

WebUI.click(findTestObject('downloadCsvFileButton'))

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-23 16:59:11

对于Chrome,项目设置中所需功能的默认设置可以正常工作,但对于Firefox,我必须做一些变通工作。

所以,我发现这个主题https://forum.katalon.com/t/opening-firefox-with-a-specific-non-anonymous-profile/12012/15和@kazurayam的回复帮助我创建了一个初始化WebDriver的脚本,我在每个测试用例之前调用它:

代码语言:javascript
复制
import org.openqa.selenium.WebDriver
import org.openqa.selenium.firefox.FirefoxDriver
import org.openqa.selenium.firefox.FirefoxOptions
import org.openqa.selenium.firefox.FirefoxProfile
import org.openqa.selenium.firefox.ProfilesIni
import static com.kms.katalon.core.testobject.ObjectRepository.findTestObject
import com.kms.katalon.core.webui.driver.DriverFactory
import com.kms.katalon.core.webui.driver.WebUIDriverType
import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI
import internal.GlobalVariable as GlobalVariable

WebUIDriverType executedBrowser = DriverFactory.getExecutedBrowser()
switch(executedBrowser) {
    case WebUIDriverType.FIREFOX_DRIVER:          // "Firefox"
        System.setProperty('webdriver.gecko.driver', DriverFactory.getGeckoDriverPath())
        FirefoxOptions options = new FirefoxOptions()

        options.addPreference('marionette', true)
        options.addPreference('browser.download.folderList', 2)
        options.addPreference('browser.helperApps.alwaysAsk.force', false)
        options.addPreference('browser.download.manager.showWhenStarting', false)
        options.addPreference('browser.download.dir', GlobalVariable.downloadPath)
        options.addPreference('browser.download.downloadDir', GlobalVariable.downloadPath)
        options.addPreference('browser.download.defaultFolder', GlobalVariable.downloadPath)
        options.addPreference('browser.helperApps.neverAsk.saveToDisk', 'application/download, application/octet-stream, text/csv')

        WebDriver driver = new FirefoxDriver(options);
        // let Katalon Studio to use the WebDriver created here
        DriverFactory.changeWebDriver(driver)
        break
    default:
        WebUI.openBrowser('')
}

请注意,如果您想下载不同的文件类型,您必须在“browser.helperApps.neverAsk.saveToDisk”首选项中指定所有必需的MIME类型。可以在以下位置找到MIME类型的列表:https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Complete_list_of_MIME_types

此外,如果文件是PDF,则必须再添加一个首选项:

代码语言:javascript
复制
options.addPreference('pdfjs.disabled', true)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59844743

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档