Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Upload files через Selenium Grid

watir
os-x
selenium-grid
cucumber
ruby
Теги: #<Tag:0x00007f7b69f15a18> #<Tag:0x00007f7b69f156d0> #<Tag:0x00007f7b69f15450> #<Tag:0x00007f7b69f151a8> #<Tag:0x00007f7b69f14eb0>

(andrew) #1

Например работающий фрагмент кода на Mac OS: (автоматизация на Ruby, Cucumber, Watir)
в функции datapath мы видим абсолютный путь к файлу.
Далее в file_upload через set делаем присваивание (можно еще через send_keys)

  def datapath(filename)
    File.expand_path(File.join(File.dirname(__FILE__), '../../../../Test files/', filename))
  end

  def file_upload(file_name, folder)
    upload_popover_element.when_visible(60)
    file = @browser.file_field(:id, 'upload_dialog')
    upload_file.set(datapath("#{folder}/#{file_name}"))
  end

Проблема:
Система ожидает загрузки файла с абсолютного пути.

/Users/bla/RubymineProjects/testing/Test files/Eng test files/test_doc.doc (Errno::ENOENT)

А путь нужно брать с удаленной машины:

C:/Test files/Eng test files/test_doc.doc

Вопрос:
Как сделать так чтобы можно было загрузить файл через grid?
Какие еще есть методы?
Как делаете вы?

Делал по этим примерам работает только на Mac OS.
Selenium file upload feature
File Fields raise an error if path cannot be found
file_detector error watir webdriver


(Ray Romanov) #2

У меня лежат файлы там где происходит запуска браузера(мобильного устройства) в селениуме.


(andrew) #3

да у меня тоже там лежат, но только почему то отуда НЕ берутся файлы, ищет там где запускался скрипт…


(Ray Romanov) #4

А ну да блин скрипты запускаются у меня там же.


(andrew) #5

сегодня увидел что нет привязки если запускать тест

но если просмотреть вручную и после рефреша, можно увидеть input id


пробовал делать рефреш драйвером - но элемента все равно нет …
что делать?