2009-10-26 62 views
21

我想使用xpath函數小寫或uppper-case來獲取xpath查詢,但它們似乎無法在硒中工作(我在測試我的xpath之前我應用它)。selenium中的大寫和小寫xpath函數的問題IDE

例不工作: //*[.=upper-case('some文')]

我沒有問題,我的定位需要複雜的路徑節點,甚至使用聚合函數,如只要我不使用大寫和小寫。

有沒有人遇到過這個?是否有意義?

謝謝。

+0

這是很好的注意,在XSL文件工作的人,使用CSS」文本特性解決了像資本轉化的問題。獲取更多信息:http://www.w3schools.com/css/pr_text_text-transform.asp – sid3k

回答

48

upper-case()lower-case()是XPath 2.0函數。有可能你的平臺只支持XPath 1.0。

嘗試:

translate('some text','abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ') 

這是XPath 1.0的方式來做到這一點。不幸的是,這需要知道文本使用的字母表。對於簡單的英語,上面可能有效,但如果你期望重音字符,請確保將它們添加到列表中。

+0

的確,謝謝! 不幸的是,這根本不是'乾淨'的...... :( (它會使我們在Fitnesse的GenericFixture中更復雜的DSL已經複雜化) 任何人有任何想法,當硒RC或火狐(我不知道誰會負責任)將採用XPath 2.0? – Aristotelis

+0

對不起,但我不知道,我知道它並不乾淨,但它是用XPath 1.0獲得的最好結果。 – Tomalak

+3

@Aristotelis:是的,這似乎是XML是Unicode,而不是ASCII /英文,因此,爲了大寫,它需要知道排序規則,排序規則知識被添加到XPath 2.0中。 – 2010-09-10 19:35:47

1

如果您要在xslt的多個位置需要大寫字母,您可以爲小寫字母和大寫字母定義變量,然後在翻譯功能中隨處使用它們。它應該讓你的xslt更清潔。

例在XSL/XPATH : No upper-case function in MSXML 4.0 ?