填写文本表单-字符串太小?

4

我目前需要完成一个工作,需要将一个网站的代码复制到一个文本框中。

我正在使用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

现在,当我执行第一个命令来填写文本框时,它会慢慢地打出所有的字母(有没有一种简单的方法可以加快速度?),但是在输入了692个字符后,它停在了句子的中间。(我将输入的文本复制到charcounter.com,这就是我知道字符数的原因。)

问题出在哪里呢?Ruby是否由于某些原因给我的字符串限制了大小?我怎么才能打破这个限制呢?

是否有其他填写文本框的方法呢?

1个回答

2

尝试使用.value方法

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

或者

我认为umlauts等字符的错误打印与您计算机上的代码页设置和您正在读取的文件有关。您可能需要尝试从一个代码页转到另一个代码页... 我猜测您的源文件是CP850或甚至是UTF-8,而我认为您需要西欧来获得umlauts... 但作为澳大利亚人,我真的不知道 =) 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 })
)

太棒了!谢谢 :-) 现在唯一的问题是,某些特殊字符以错误的方式表示。在HTML文件中它们是正确的,但是当将它们粘贴到文本字段中时,它们会以某种方式转换为其他字符:(你有什么解决办法吗?再次感谢!你真的帮了大忙 :) - Sebastian
抱歉格式有些问题,不知道为什么无法换行,尽管我在每一行末尾加了两个空格 :( 再次感谢您的帮助! - Sebastian
我的意思是,还有哪些字符被显示出来了?你能举一些例子,说明你期望输出什么,实际上又显示了什么吗?例如:Hello Günter => Hello+G%FCnter。 - Tim Koopmans
我建议您开一个新的问题,因为我们现在已经超出了最初关于设置文本字段的问题,而是进入了代码页、Unicode等领域。在评论中,您的格式受到很大限制,而在新问题中,您可以更好地格式化内容。 - Chuck van der Linden
好的,感谢您的建议。我在以下地址开了一个新问题,希望提供了所有所需信息: http://stackoverflow.com/questions/5974692/ruby-encoding-problem-when-filling-out-a-text-field-with-watir - Sebastian
显示剩余5条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接