2011-08-25 99 views
1

當我的Windows7 + Ruby1.9.2 +的Watir-webdriver的執行這個測試腳本「沒有翻譯的關鍵假設Unicode輸入...」:非拉丁文字母

# 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,而是試圖將「A」字母文本字段時,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中正常工作?

我建議在您的計算機上執行上述腳本以確定這是常見問題還是隻是我的配置中的某些內容。

+0

沒有人遇到過這樣的問題嗎?如果是這樣,我猜這是否可以以某種方式與鍵盤佈局有關?我使用自定義的不是Windows標準佈局。 – mihijs

回答

1

這是IE驅動程序中的一個已知錯誤,您可以按照here。 Chrome中的警告是無害的,儘管它們可能不應該默認打印。

+0

可悲的是沒有解決方案或黑客來解決這個問題。最好不用專門爲IE重新設計測試腳本。 – mihijs

+0

您可以切換到Watir IE驅動程序進行此測試嗎? –

+0

如果我使用watir而不是watir-webdriver for IE,它確實有效。無法想象watir和watir-webdriver可以以這種方式不同。感謝'的建議。 – mihijs

0

我發現這個問題只有在設置了非windows鍵盤佈局時纔是實際的。 如果設置了任何標準窗口布局,例如「腳本執行機器上的」拉脫維亞語(QWERTY)「,IE不會崩潰,只會輸出類似於Chrome的警告。

臨時攻擊,直到IE驅動程序錯誤得到解決,可能是在執行測試套件之前設置標準的Windows鍵盤佈局,並在執行後恢復到之前的版本。

How to get the keyboard layout on windows with ruby? - 靈感。