Перейти к содержимому

Эффективное использование TestNG и JUnit
онлайн, начало 20 апреля
Логи как инструмент тестировщика
онлайн, начало 23 апреля
Тестирование производительности (HP Load Runner)
онлайн, начало 20 апреля
Управление требованиями
онлайн, начало 20 апреля
Фотография

Тест виснет при попытке sendKeys() в file input (PhantomJS)


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 7

#1 elvis

elvis

    Постоянный участник

  • Members
  • PipPipPip
  • 189 сообщений
  • Город:Tallinn


Отправлено 27 Ноябрь 2015 - 21:38

Кто хочет, может сам попытаться http://siptv.eu/converter/

Элемент By.xpath("//input[@type='file']")

 

В Firefox работает, в других браузерах не пробовал. PhantomJS 2.0, PhantomJSDriver от codeborn 1.2.1 - не работает. Виснет на методе sendKeys() и всё, дальше уже не идёт. setValue() тоже не проканывает по другой причине. 

 

Пробовал так же селенидовский uploadFile(new File(path)) с тем же результатом. В чём может быть проблема?

 


  • 0

#2 Saga

Saga

    Новый участник

  • Members
  • Pip
  • 37 сообщений
  • ФИО:Колесник Марина
  • Город:Киев


Отправлено 27 Ноябрь 2015 - 23:55

На phantomjs 1.9.0 все работает


  • 0

#3 neman

neman

    Активный участник

  • Members
  • PipPip
  • 142 сообщений
  • ФИО:Антон


Отправлено 28 Ноябрь 2015 - 06:46

https://github.com/a...js/issues/10993

 

В свое время другого решения, кроме боли, страдания и retry я не нашел, потому что не мог откатиться на 1.9.8.


  • 1

#4 elvis

elvis

    Постоянный участник

  • Members
  • PipPipPip
  • 189 сообщений
  • Город:Tallinn


Отправлено 28 Ноябрь 2015 - 08:41

спасибо ребята!


  • 0

#5 kashee

kashee

    Новый участник

  • Members
  • Pip
  • 5 сообщений
  • ФИО:Mikhail

Отправлено 29 Декабрь 2016 - 09:26

Добрый день! Время идёт, проблемы остаются. Phantomjs-2.1.1 зависает на sendKeys(). Проявляется и в Win и в Linux. Где взять 1.9.0 phantomjs или где откатить версию? А может есть другое решение проблемы? Разжуйте для меня пожалуйста. 
 

ап. Нашёл в архивах гугла https://code.google....tomjs/downloads v1.9. Проблему это не решило.


Сообщение отредактировал kashee: 29 Декабрь 2016 - 09:54

  • 0

#6 sergueik

sergueik

    Новый участник

  • Members
  • Pip
  • 60 сообщений
  • ФИО:кузьмин сергей

Отправлено 29 Декабрь 2016 - 20:44

у phantomjs

похоже есть свой _uploadFile

https://github.com/a...bpage.cpp#L1367
 

void WebPage::_uploadFile(const QString& selector, const QStringList& fileNames)
{
    QWebElement el = m_currentFrame->findFirstElement(selector);
    if (el.isNull()) {
        return;
    }

    // Filter out "fileNames" that don't actually exist
    m_customWebPage->m_uploadFiles.clear();
    for (int i = 0, ilen = fileNames.length(); i < ilen; ++i) {
        if (QFile::exists(fileNames[i])) {
            m_customWebPage->m_uploadFiles.append(fileNames[i]);
        }
    }

    el.evaluateJavaScript(JS_ELEMENT_CLICK);
}

у меня c phantomjs версия 2.1.1, windows64 сработало
https://seleniumhq.g...tePhantomJS.htm

      String testFileName = "test.txt";
      String testFilePath = new File(testFileName).getAbsolutePath();
      driver.get("http://siptv.eu/converter/");
      element = driver.findElement(
          By.cssSelector("div#container form#file_form input#file"));
      assertThat(element, notNullValue());

      ((PhantomJSDriver) driver).executePhantomJS(String.format(
          "var page = this; page.uploadFile('input[id=file]', '%s' );",
          testFilePath.replaceAll("\\\\", "/")));
      try {
        Thread.sleep(2000);
      } catch (InterruptedException e) {

      }
      assertThat(element.getAttribute("value"), containsString(testFileName));

нажимать на submit не пробовал.


  • 0

#7 kashee

kashee

    Новый участник

  • Members
  • Pip
  • 5 сообщений
  • ФИО:Mikhail

Отправлено 30 Декабрь 2016 - 14:18

upload как-то не привёл ни к какому годному эффекту. Проблема решилась удалением атрибута "multiple" у input-a:

 

if (driver instanceof JavascriptExecutor) {
((JavascriptExecutor)driver).executeScript( "document.getElementsByTagName('input')[0].removeAttribute('multiple');" ); }


  • 0

#8 sergueik

sergueik

    Новый участник

  • Members
  • Pip
  • 60 сообщений
  • ФИО:кузьмин сергей

Отправлено 31 Декабрь 2016 - 03:29

спасибо -  очень рад за вас
мне показалось что
чистка multiple помогает тогда когда от там есть. напр с http://blueimp.githu...ry-File-Upload/ и ее вариациями
и с 2.11 у меня недостаточно тестов чтобы судить

 

кстати 

похоже что и у jBrowserDriver  с filе проблемы...
https://github.com/M...utf8=✓&q=upload

кто нибудь пользовался , какие впечатления  ?


  • 0


Selenium 2.0: стартовый уровень
онлайн, начало 13 апреля
Программирование на Java для тестировщиков
онлайн, начало 4 мая
Автоматизация функционального тестирования
онлайн, начало 25 мая
Selenium WebDriver: полное руководство
онлайн, начало 11 мая



Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных

Яндекс.Метрика
Реклама на портале