2012-02-29 66 views
2

我對自動化有點新興,並且正在學習一切自動教學,所以請原諒我,如果我的術語有點偏離。我已經搜索了大家對這個問題的回答,並且我似乎找不到任何東西。我認爲這是我的小詞彙量,當涉及到這個東西...無論如何...在Selenium IDE中使用通配符

我正在嘗試編寫一個測試,執行所有必要的操作來完成教程通過使用記錄器。但是,對於一個特定步驟,元素ID會發生變化。例如,我想點擊的ID是這樣的:

//li[@id='message_661119']/div[2]/div[2]/a/img 

然而,對於正在執行的教程「任務」,的id更改的數量每個新用戶。

無論如何要讓Selenium識別或使用通配符?例如:

//li[@id='message_******']/div[2]/div[2]/a/img 

當然,上面的例子不起作用。

任何建議將非常有幫助。謝謝!!

回答

9

您可以使用starts-with()此:

//li[starts-with(@id, 'message_')]/div[2]/div[2]/a/img 

它是在硒的文檔Locating Techniquesstarts-with()提到的例子之一。

+4

男人,我會吻你,如果我可以。非常感謝。我一定會更徹底地查看定位技術。 <3 <3 <3 – btdeviant 2012-02-29 02:34:51

+2

你的鏈接已經死了,我不確定是否[this](http://docs.seleniumhq.org/docs/02_selenium_ide.jsp#locating-elements)指向相同的內容。 – rene 2015-04-24 14:13:34

+2

@rene:似乎沒有,因爲它沒有提到'starts-with()'。看起來他們已經修改了他們的文檔,因爲文檔在其網站上的任何地方都不再可用。 – BoltClock 2015-04-24 14:17:43

1

在Selenium IDE中的命令的目標字段中,您可以看到message_123123單擊下拉列表並選擇與xpath:idRelative相關的選項,或者如果這個選項不起作用,則嘗試另一個選項,該選項不包括煩人的message_123123所以這樣你就可以通過它的位置來識別網頁元素,而不是id。我用這種方式解決了我的問題

+0

隱藏得很好。對於尋找替代「目標」選擇器非常有用。 – user18099 2017-06-01 08:40:48