Как настроить Firefox для загрузки файлов без запроса во время выполнения теста Katalon? - PullRequest
0 голосов
/ 21 января 2020

Я пытаюсь создать очень простой тестовый пример Katalon, который открывает Firefox, переходит по указанному URL и нажимает кнопку, чтобы загрузить файл. Я настроил Desired Capabilities в соответствии с документацией 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, селен 3.141.59

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'))

firefox_profile capabilities enter image description here

1 Ответ

0 голосов
/ 23 января 2020

Для Chrome стандартная настройка Желаемых возможностей в Настройках проекта работает нормально, но для Firefox Мне пришлось сделать обходной путь, чтобы он заработал.

Итак, я нашел эту топи c https://forum.katalon.com/t/opening-firefox-with-a-specific-non-anonymous-profile/12012/15 и ответ @kazurayam помог мне создать скрипт, который инициализирует WebDriver, который я вызываю перед каждым тестовым примером:

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('')
}

Примечание для других, если вы хотите загрузить Для разных типов файлов вы должны указать все необходимые типы MIME в предпочтении 'browser.helperApps.neverAsk.saveToDisk'. Список типов MIME можно найти здесь: https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Complete_list_of_MIME_types

Кроме того, если файл PDF, необходимо добавить еще одно предпочтение:

options.addPreference('pdfjs.disabled', true)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...