2011-05-16 56 views
4

在測試自動化Web應用程序時,我獲得了動態生成的外部代碼ID。我嘗試使用xpath,但測試用例失敗。我瀏覽過不同的網站,但沒有找到任何運氣。有人能幫助我嗎?如何在Selenium中使用由EXTJS生成的ext-gen ID?

謝謝 SRINIVAS Marthi

+0

您需要提供HTML頁面,並告訴我們你正在嘗試做的。 – Ardesco 2011-05-23 10:17:37

+0

你不想在測試自動化期間使用xpath,而不是id?那麼你永遠不會有問題。 – MacGyver 2014-09-08 21:05:55

回答

0

我已經成功地與自動化EXTJS網站和自動生成的ID,雖然我不建議這樣做。 (因爲這些ID自動生成的,如果有新的元素添加到頁面中,所有的定位器是無效的,。)

我建議針指向精確的項目,而不是一個完整的路徑

//*[@id="ext-js123"] 
0

使用Selenium的最好的方法是在代碼中設置唯一的ID。

由於沒有配置按鈕,您必須在創建按鈕後附加按鈕的ID。 在ExtJS的3,我們用來設置按鈕ID:

dlg.getDialog().getEl().select('button').each(function(el) { 
    el.dom.id = 'confirm-' + el.dom.innerHTML; 
}); 

不幸的是,這並不在了ExtJS的4工作,所以我要尋找一個新的解決方案也。 ;-)

1

對於自動化測試,ExtJS的自動生成的ID-s最好完全避免。你可以將自己的靜態ID分配給組件,但是現在基本上用全局變量丟棄了你的代碼,這也不是很好。使用某些ID-s可能是一種有用的折衷辦法,但您不想爲每個小按鈕分配一個ID。

對於ExtJS的4我建議使用ComponentQuery

Ext.ComponentQuery.query("panel[title='Orders'] button[text='Save']") 
相關問題