2015-10-28 37 views
1

我想知道是否有方法來驗證Xpath上的多個字符串。這是我現在使用的一個:Xpath表達式或OR

/td[2][text()[contains(.,'Word1')]] 

我想要做這樣的事情:

/td[2][text()[contains(.,'Word1' OR 'Word2' OR 'Word3')]] 

這可能嗎?

回答

2

更新答案:

我相信,爲什麼你遇到的問題是病例敏感度,請以小寫字母or

//td[text()[contains(.,'Word1') or contains(.,'Word2') or contains(.,'Word3')]] 

如果沒有幫助,您可以使用Union方法:

/td[2][text()[contains(.,'Word1')]] | /td[2][text()[contains(.,'Word2')]] | /td[2][text()[contains(.,'Word3')]] 
1

是 - 你只需要單獨電話:

[contains(., 'Word1') OR contains(., 'Word2') OR contains(., 'Word3')] 

當你擁有了它目前,一個布爾值被作爲第二個參數傳遞給contains,而不是字符串。

+0

我得到這個錯誤 - > ** [錯誤]無效的XPath [2]:/ HTML /體/ DIV/div [2]/div/div/div [2]/div/form/div [2]/div/table/tbody/tr [1]/td [2] [text()[contains(。,'FirstLine' )OR包含(。''SecondLine')]] ** - 我寫錯了什麼? – sanjuro8998

+0

嘗試'/td[2][contains(.,'Word1')或包含(。,'Word2')或包含(。''Word3')]' – Utkanos

+0

相同的錯誤 - ** [error]無效的xpath [ 2]:/ html/body/div/div [2]/div/div/div [2]/div/form/div [2]/div/table/tbody/tr [1]/td [2] (。,'FirstLine')或包含(。,'SecondLine')] ** - 是否有我可以檢查以幫助您?我忘了提及,我正在使用Selenium IDE,不知道它如何處理Xpath,如果我們不能使它工作,我可能會問它作爲一個Selenium IDE問題。 – sanjuro8998

2

是的,它是可能的:

/td[2][text()[contains(.,'Word1') OR contains(.,'Word2') OR contains(.,'Word3')]] 
1

隨着的XPath 2.0或3.0你也可以使用:

  • 一個Quantified Expression遍歷如有的話一個字的順序和測試含有

    //td[2][text()[some $word in ('Word1', 'Word2', 'Word3') satisfies contains(., $word)]]

  • matches()功能,並指定你的正則表達式的單詞列表:

    //td[2][text()[matches(., 'Word1|Word2|Word3')]]