2015-07-21 41 views
0

我需要從GWT應用程序中的元素中獲取文本/值。該應用程序和元素都可以在這裏找到:Selenium:無法在GWT應用程序中找到元素

-open http://www.festo.com/cat/en-us_us/products

- 點選

- 單擊「軟件」上的「旋轉分度表」

- 單擊「產品」

- 單擊 「下一步」 「下一步」

-click *

現在你在頁面上「3。負載設置」

- 輸入50(公斤平方釐米)作爲質量慣性矩

- 輸入50(kg)作爲質譜

- 輸入50(毫米)爲r如距離/槓桿臂

- 輸入50(度),爲希臘字母THETA

- 輸入50(毫米)爲Z

-click下一個 「下一步」

現在你在頁面上「4。結果」

這裏你可以看到的結果‘C:總週期時間’(和其他結果),這將是0.518 S爲值之前的頁面上輸入

我能夠做到這一切自動與硒(在perl),直到我到達第4頁,在這裏我不能抓住結果。誰能給我一個建議怎麼辦?一些更多的細節,我也無法找到HTML標籤中的結果值「0.518」。如果我切換到FireBug的DOM選項卡,我能找到它。

Thx

羅蘭

+0

您可以粘貼與您的問題相關的HTML代碼嗎? – Michal

+0

在屏幕**上包含結果**的字段是

+0

在關閉瀏覽器之前,一次給Thread.sleep()。這樣你就可以看到結果。否則您可以使用getText()從該頁面獲取結果並將其打印在日誌中。 –

回答

0

GWT使用iframe - 這對Selenium測試不友好。 您的要素包括在此iframe:CamosIFramecamosFSV22E4A4C1E_EDC0_768B_CC78_8BA85ABADCCD

你需要切換到iframe的第一的東西,如:

driver.switchTo().frame("Your-frame-id"); 

當幀動態生成的,可以在這裏是這種情況,你可以用試傳球指數。

當你在正確的框架上,你可以嘗試找到你的元素與CSS類:input.GM53QT1CF - 但我看到它選擇頁面上的所有輸入字段。硒從列表中第一個,所以你的情況應該沒問題。

+0

我的腳本在點擊「旋轉索引表」後直接切換到此IFrame。即使在結果頁面再次切換到該fraim也沒有區別。 正如我所說,我看不到「0.518」或FireBug的HTML標籤中的任何其他結果值,我只能在DOM標籤中看到它。 –

+0

我可以選擇這個元素與螢火蟲 - 只需選擇螢火蟲的'檢查箭頭',並指出它的元素。然後我也可以用FirePath擴展來評估css選擇器。只需選擇適當的iframe。這是唯一的選項,我可以用來驗證您的定位器 – Michal

+0

如果我使用「檢查箭頭」點擊該字段,我看到這在HTML標籤 '' 我是否也必須在FireBug中選擇Frame?如果是的話,怎麼樣? –

0

你可以嘗試通過[Ctrl + A],然後讀取剪貼板,可能是一個解決辦法複製輸入元素的文本複製到剪貼板的組合。

確保您正確定位您的輸入元素!

WebElement inputElement = driver.findElement(inputLocator); 

//copy all text inside input element 
inputElement.sendKeys(Keys.chord(Keys.CONTROL, "a")); 

//now read the clipboard 
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); 
System.out.println(clipboard.getData(DataFlavor.stringFlavor)); 
相關問題