测试脚本中的非拉丁字母导致“无法翻译密钥。假设unicode输入......”

时间:2011-08-25 07:38:10

标签: ruby selenium watir watir-webdriver

当我在Windows7 + Ruby1.9.2 + watir-webdriver上执行此测试脚本时:

# encoding: utf-8
require "rubygems"
require "watir-webdriver"
ie = Watir::Browser.new :ie
ie.goto "www.tilde.eu"
ie.select_list(:name => "tr-direction").select "Latvian-English"
ie.select_list(:name => "tr-direction").selected? "Latvian-English"
ie.text_field(:class => "tr-area").set "skolas dārzā aug divas priedes"
ie.element_by_xpath("/html/body/div[3]/div/div/div/section/div/div/div/form/table/tbody/tr/td[3]/input").click
Watir::Wait.until { ie.text.include? "About Tilde Machine Translation" }
puts ie.div(:class => "translate_text_result").text

脚本在Firefox中执行得很好,但在尝试在文本字段中设置“ā”字母时IE9崩溃,CMD显示如下:

No translation for key. Assuming unicode input: 257
Timeout awaiting keypress: 82
Key up failed: 1400
Key down failed: 1400
Timeout awaiting keypress: 90
Key up failed: 1400
No translation for key. Assuming unicode input: 257
Key down failed: 1400

脚本在Chrome中完全执行,但仍显示CMD中的一些警告:

Started ChromeDriver
port=52409
version=14.0.836.0
[0825/095000:WARNING:webdriver_key_converter.cc(271)] No translation for key code. Code point: 257
[0825/095000:WARNING:webdriver_key_converter.cc(271)] No translation for key code. Code point: 257

我是否需要指定# encoding: utf-8以外的任何其他内容才能在IE和Chrome中正常使用?

我建议在您的计算机上执行以上脚本,以确定这是常见问题还是我的配置中的某些内容。

2 个答案:

答案 0 :(得分:1)

这是IE驱动程序中的已知错误,您可以按照here进行操作。 Chrome中的警告是无害的,但默认情况下可能不应打印。

答案 1 :(得分:0)

我发现只有设置了非Windows键盘布局才会出现问题。 如果设置了任何标准窗口布局,例如“拉脱维亚语(QWERTY)”在脚本执行机器上,IE不再崩溃,只输出与Chrome类似的警告。

直到修复IE驱动程序错误的临时攻击可能是在执行测试套件之前设置标准的Windows键盘布局,并在执行后恢复到之前的版本。

How to get the keyboard layout on windows with ruby? - 获取灵感。