2010-05-02 47 views
1

這裏的交易:如何搜索文本並填寫/點擊與Selenium的鏈接?

有沒有辦法來搜索輸入名稱或類型女巫是不是精確的,並填寫它?例如,我想用我的電子郵件填寫名稱電子郵件的任何輸入,但我可能有一些名爲電子郵件123,電子郵件,電子郵件等輸入...有沒有辦法做一些事情,如*電子郵件* ?

我怎樣才能點擊一個鏈接驗證一些文本,可能在鏈接上,或上面的鏈接,或關閉,或在類等?

PS:我使用的是硒的IDE與Firefox

回答

2

您可以使用XPath的東西,如//input[contains(@name,'email')找到它。如果你有這樣的網頁上這將是值得移動測試到您最喜愛的編程語言,然後做

emailInstances = sel.get_xpath_count("//input[contains(@name,'email')]") 
for i in range(int(emailInstances)): 
    sel.type("//input[contains(@name,'email')]["+ i + 1 +"]","[email protected]address.tld") 
0

多個實例XPath的工作原理以及與上面的解決方案是好的。如果您正在嘗試測試舊版本的IE,您還可以使用JavaScript注入。我發現它非常快,但調試起來可能有點麻煩。我其實沒有檢查,如果下面的作品,但希望它給你的,你可以做些什麼的想法:

String javaScript = "_sl_enterEmailStr = function(parentObj,str) {  "+ 
      "  var allTags = parentObj.getElementsByTagName('input'); "+ 
      "  for (var i = 0; i < allTags.length; ++i) {    "+ 
      "   var tag = allTags[i];         "+ 
      "   if (tag.name && tag.type && tag.type === 'text'  "+ 
      "    && tag.name.match(/email/)) {      "+ 
      "    tag.value = str;         "+ 
      "   }              "+ 
      "  }               "+ 
      "};                "+ 
      "_sl_enterEmailStr(this.browserbot.getCurrentWindow().document "+ 
      "     ,'[email protected]');     "; 


    mySelenium.getEval(javaScript); 

我發現JavaScript注入正則表達式允許我做偉大的事情的動態輸入字段。請注意,您可以使用findElement()來更詳細地瞭解您在何處查找標籤。

關於點擊鏈接並獲取文本,這些都是簡單的click()和getText()操作,可以通過正確的定位器完成。我會檢查出硒API。例如,這裏是到Java one for 1.0b2的鏈接。

相關問題