簡體   English   中英

Watir和Javascript

[英]Watir and Javascript

我正在研究多種Web測試工具。 我現在正在努力。 我主要擔心的是處理javascript。 我只是想知道是否有人可以給我一個關於在watir中處理javascript的概述。 它有哪些陷阱和困難? 它基本上是使用javascript注入來告訴頁面該做什么?

如果有人想建議像watir這樣的其他網絡測試工具,我會很感激。 我先嘗試過硒,發現它有點不可靠。

市場上有沒有便宜的工具?

謝謝!

Watir + Javascript =>通常可以將javascript注入您的測試中,例如

@ b.goto( “JavaScript的:openWin(2)”)

當你說'處理javascript'時,我認為你的意思是Watir在渲染/執行方面處理客戶端代碼的能力。 由於驅動的Watir真正的瀏覽器(如硒),那么JS 一般會按預期執行。

Watir有許多不同的驅動程序,例如watir,firewatir,safariwatir,chromewatir,operawatir和現在的watir-webdriver。 根據瀏覽器和操作系統的不同,所有這些驅動器的瀏覽器略有不同。 例如,Firewatir使用JSSH,它實際上是通過JS控制瀏覽器。 你能解釋一下Selenium“不可靠”的含義嗎?

我建議看一下watir-webdriver的最新實現。 這樣,您就可以在新的驅動程序實現之上獲得良好的watir API。 Webdriver在支持方面有一些強大的支持(Selenium 2使用它,谷歌正在編碼!)所以我認為這是一個安全的賭注。 您還可以使用此實現控制大多數主流瀏覽器。

替代工具=> http://wiki.openqa.org/display/WTR/Alternative+Tools+For+Web+Testing

蒂姆提供了一個很好的答案。

我必須添加到他所說的唯一的事情是我發現,我現在必須使用watir方法來觸發特定的javascript事件,如onmouseover,以便准確地模擬用戶與頁面交互。 由於watir有一個方法,硬件部分不是watir代碼,而是對頁面進行逆向工程(或根據用戶操作注意到細微的頁面交互),以確定哪些元素“連線”到什么事件和順序到針對這些特定元素解雇這些事件。

通常,查看元素的HTML並查看正在發生的事情非常容易。 但是使用一些自定義控件可能需要一些學習,因為他們能夠很好地“隱藏”所有事件布線,並且您可能必須使用類似的東西來解析頁面的各個方面(樣式和所有)小提琴手。

(畢竟,普通用戶永遠不會'強迫'javacript執行,或'注入'javascript。他們將使用鼠標和鍵盤與頁面進行交互,任何javascript都將是腳本執行時的結果頁面已加載,或者是基於特定用戶操作通過事件觸發的腳本的結果)

如果你的JS沒有觸發HTML刷新,那么WATiR會感到困惑。 當您單擊WATiR中的對象時,它會在繼續之前等待頁面加載。 您可以使用自定義等待命令和“.click!”來解決此問題。

如果你是一個合理的紅寶石編碼器,那么WATiR是大多數事情的解決方案。 它有可能成為一個相當穩定和可靠的自動化Web測試源。

你可能想看一下Firewatir,sahi,watir-webdriver,只是為了給你一些更多的線索(如果你沒有,建議使用谷歌搜索“開源網絡測試”等等。我調查了這些以及更多,並解決了在WATiR上出於成本,功耗,靈活性和先驗知識的原因(在ruby和WATiR中)。使用正確的寶石,它將與大多數數據庫和Excel(或其他文件)對話以加載測試數據。

我目前正在使用WATiR來測試ZK生成的接口,其中沒有任何ID是靜態的,並且有很多AJAXiness正在進行。 我剛剛構建了一個框架來處理這些問題,它的工作正常。

此外, 一些可能有幫助的半真實和真實的東西

要從watir傳遞javascript,請使用browser.execute_script()示例:

Watir::Wait.until { $browser.execute_script("return document.readyState") == "complete" }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM