Как загрузить файл в автономном режиме с помощью тега кнопки - PullRequest
0 голосов
/ 07 ноября 2019

Я пытаюсь запустить загрузку файлов в автономном режиме, я пробовал разные способы, но не работает. Как я могу получить загрузку файла в автономном режиме?

  1. Кнопка импорта в DOM выглядит следующим образом:

введите описание изображения здесь

Это не тег ввода, яне уверен, повлияет ли это на результат?

Мне нужно, чтобы он работал в режиме без головы.

Ниже приведены все способы, которые я пробовал:

  1. Использование ключевого слова WebUI.uploadFile

Не работает в режиме по умолчанию и в режиме без наушников.

Определите пользовательские ключевые слова, как показано ниже:
    public class MyTools {

        @Keyword
        def uploadFile (TestObject to, String filePath) {
            WebUI.click(to)
            WebUI.delay(2)
            StringSelection ss = new StringSelection(filePath);
            Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss, null);

            Robot robot = new Robot();
            robot.keyPress(KeyEvent.VK_CONTROL);
            robot.delay(1000)
            robot.keyPress(KeyEvent.VK_V);
            robot.keyRelease(KeyEvent.VK_V);
            robot.delay(1000) //NOTE THE DELAY (500, 1000, 1500 MIGHT WORK FOR YOU)
            robot.keyRelease(KeyEvent.VK_CONTROL);
            robot.keyPress(KeyEvent.VK_ENTER);
            robot.keyRelease(KeyEvent.VK_ENTER);
        }
    }

Этот способ может работать в режиме Chrome по умолчанию, но всегда будет не работать в режиме без монитора.

Используйте следующий код:
    WebDriver driver = DriverFactory.getWebDriver()

    String path = 'D:\\Daily task\\New PW User.csv'

    driver.findElement(By.xpath("//*[@id='app']/div/section/div/section[1]/div[1]/div/button")).sendKeys(path);

Не работает как в режиме по умолчанию, так и в режиме без головы.

Может ли кто-нибудь помочь мне в этом?

1 Ответ

0 голосов
/ 07 ноября 2019

Класс робота не будет работать в режиме без головы, по крайней мере, это не так просто .

Кроме того, я не думаю, что вам это нужно (непонятно, зачемэто нужно в вашем примере). Попробуйте изменить метод uploadFile() следующим образом:

    @Keyword
    def uploadFile (TestObject to, String filePath) {
        WebUI.click(to)
        WebUI.delay(2)
        WebElement element = WebUiCommonHelper.findWebElement(to, 30)
        element.sendKeys(filePath)
    }

ПРИМЕЧАНИЕ:

Вам потребуется импортировать com.kms.katalon.core.webui.common.WebUiCommonHelper, чтобы преобразовать тестовый объект ввеб-элемент.

...