выяснение имени файла Firefox, сохраненного через watir-webdriver - PullRequest
2 голосов
/ 23 февраля 2012

Учитывая то, как теперь работает Firefox, несколько невозможно указать имя файла Сохранить как независимо от того, с каким типом ссылки, перенаправления или пантомимы watir-webdriver встречается в совершенно неинтерактивный / не графический интерфейс .

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

Надеюсь, что-то более надежное, чем «обнаружение последнего файла, созданного в каталоге», поскольку у меня есть независимые процессы, обязательно использующие одну и ту же папку одновременно, включая другие веб-драйверы.

Загрузка без сбоев уже установлена ​​(насколько это возможно)использование многих предусмотренных типов файлов) в профиле с использованием этого метода: Firefox 4 с веб-драйвером watir: нужна помощь при использовании helperApps.neverAsk для сохранения CSV без запроса

В моей настройке сценарий Bash вызывает Ruby, которыйвыполняет watir-webdriver, запускает браузер и т. д., затем возвращается к процессу Bash.Я бы предпочел, чтобы Ruby узнал имя файла, которое он только что сохранил, так как с его env он лучше знает, как я хочу переименовать файл, а не оставлять его на какое-то жуткое lsof / strace, чтобы выяснить после смерти.Но что бы ни работало.

ОБНОВЛЕНИЕ

Поскольку ответ, похоже, не совсем, может кто-нибудь предложить короткий код Ruby, который находит последний файл, сохраненный в каталоге, проверяет, действительно ли он был записан впоследние 2 секунды и переименовывает его в мою переменную $acctno .csv?

Ответы [ 2 ]

2 голосов
/ 24 февраля 2012

Попробуйте, но замените Dir.pwd именем вашего каталога

f = Dir.entries(Dir.pwd).reject{|f|File.ftype(f)!='file'}.sort_by{|f| File.mtime(f)}.last
File.rename(f, "#{$acctno}.csv") if Time.now-File.mtime(f)<2
2 голосов
/ 24 февраля 2012

как насчет создания каталога с использованием текущей даты-времени в качестве части имени при запуске теста.Вы также можете записать это в переменную окружения, если какое-то последующее действие должно знать, куда были помещены файлы

Затем, когда что-то должно записать файл, используйте имя теста или шага, или что-то ещепозволяет проследить его обратно к тому, что записал файл.или просто увеличивающий номер, и пусть он создаст какой-то файл журнала, который скажет вам, что представляет собой каждый номер или что его создал и т. д.

...