Заполнение текстовой формы - строка слишком мала? - PullRequest
4 голосов
/ 07 мая 2011

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

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

browser.text_field(:id => "text").set sitetext

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

contentArray=Array.new
inputFile=File.open("my-site.html")
inputFile.each{|line| contentArray<<line}
inputFile.close

ТеперьКогда я выполняю первую команду для заполнения поля text_field, он медленно набирает все буквы (есть ли простой способ ускорить это?), но после 692 символов он останавливается в середине предложения.[Я вставил текст, который был введен в charcounter.com, вот откуда я знаю этот номер.]

В чем проблема?По какой-то причине рубин дает моим строкам ограниченный размер?Можно ли как-нибудь поднять этот барьер?

Есть ли другой способ заполнить текстовое поле?

1 Ответ

2 голосов
/ 07 мая 2011

Попробуйте метод .value

browser.text_field(:id => "text").value=(open('my-site.html') { |f| f.read })

OR

Я думаю, что опечатка умлаутов и т. Д. Связана с настройками кодовой страницы на вашем компьютере и файлом, с которого вы читаете. Возможно, вам придется поэкспериментировать, переходя от одной кодовой страницы к другой ... Я предполагаю, что ваш исходный файл - CP850 или, возможно, даже UTF-8, и я думаю, что вам нужен западноевропейский, чтобы получить умлауты ... но, будучи австралийцем, я действительно идея =) http://en.wikipedia.org/wiki/ISO_8859

, например

require 'iconv'

browser.text_field(:id => "text").value=(
  Iconv.iconv('CP850', 'ISO-8859-1', open('my-site.html') { |f| f.read })
)
...