我想設置一個ID爲SelectItem(更準確地說是它的選項列表),以便能夠在Selenium Grid 2測試期間識別它並且找不到辦法。我需要的是找到列表並選擇(單擊)其上的值。在Selenium Grid 2(WebDriver)測試中識別SmartGWT SelectItem的一種方法
嘗試和失敗的意圖:
- 用於此目的
setID()
和ensureDebugId()
通常的方法是不可用的SelectItem - 方法
setName()
不留下任何痕跡中生成的HTML 它無法在包含SelectItem的表單上找到選項列表。 的SelectItem由分離的元件組成:
- 標籤(標題)
- 爲textInput(選擇的值)
- 拾取器(按鈕顯示的選項下拉列表)
- pickList(選項下拉列表)
如果您將ID設置爲包含此組件的表單,以便通過
className
對其進行本地化,您將無法發現pickList,因爲當點擊選擇器並將生成的代碼放在表單邊界,所以你不能在表單中找到它。可以在整個文檔中找到它,但是如果有多個列表,則無法知道哪個列表屬於哪個SelectItem。
歡迎任何建議。先謝謝你。
UPDATE:我想澄清一些事情以避免誤解:我知道對於不同的Selenium工具和版本以及將其與Smart GWT一起使用的最佳方式有很多不同的觀點。這個問題沒有進入這些討論。它僅限於問題標題中指出的邊界:使用WebDriver進行Selenium Grid 2測試。一些背景:在對我們的GWT組件進行編碼時,我們使用setID()
方法來標識其中的一些(仔細地,沒有重複地)用於測試目的,我們並不在意這些標識符可以在結果HTML中被讀取。 (使用ensureDebugId()
歪曲了我們的觀點,出於某種原因,此外,同構的人建議忘記它)。但setID()
不適用於FormItem
,即我們無法將ID設置爲SelectItem
(它從FormItem
延伸)以便寫入將選擇第一個不爲空的選項的測試。
謝謝你試圖幫助,但你的迴應並不回答我的問題。可能是我自己解釋不夠好,但重點是我討論的方法** IS **在鏈接的頁面上推薦的方式;它說:_「一個主要定位器基於智能GWT小部件的ID」_。我沒有在Selenium IDE中使用它,而是在使用Selenium Grid 2(WebDriver)的自動化測試中使用它。爲了通過它的定位器GWT定位一個小部件,可以在編寫組件時分配這個ID。我不直接使用DOM,我使用RemoteWebDriver來查找元素。 – 2013-04-29 21:34:59
我試圖做同樣的事情 - 從SelectItem選項列表中選擇一個選項 - 使用Selenium IDE作爲鏈接頁面上的參考工具,以便了解它如何處理它。沒門。 Selenium IDE也不能「看見」它,它不能參照列表記錄點擊(即指向它的scLocator)。 – 2013-05-06 16:40:37