2011-11-14 20 views
-2

我需要在硒2中找到一個元素,並且我知道我正在尋找的鏈接包含一些我在變量中定義的文本。所以這是如何鏈接:你會如何在xpath中找到一個子串

<a id="ctl00_content_list_gvOtherSchemas_ctl02_lbViewSchema" 
    href="javascript:WebForm_DoPostBackWithOptions(new 
    WebForm_PostBackOptions(&quot;ctl00$content$list$gvOtherSchemas$ctl02 
    $lbViewSchema&quot;, &quot;&quot;, false, &quot;&quot;, 
    &quot;https://test/page.aspx?_InfoPath_Sentinel=1&amp; 
    case=2011-015196&amp;name=MyCase&amp;version=2&amp;p=PPC1&amp;cc=ANSOEG&amp; 
    py=2011&amp;rn=CR274&amp;c=0&amp;st=DRAFT&amp;oo=1&amp;sc=SC001&amp;hln=&amp; 
    tl=31-12-2011 23:59:59&amp;sa=&amp;sai=&amp;san=&quot;, false, true))" 
>MyCase</a> 

而我想通過xpath表達式尋找文本:「case = 2011-015196」。

+1

這個問題並不甚至開始變得有意義。請至少努力解釋你想要做的事情。 –

+0

「定位」是什麼意思?你說最初你想找到包含給定文本的*元素*(在這種情況下,''元素);但後來你問了如何在回發中找到文本,這表明在字符串中查找子字符串的位置。 – LarsH

+0

對不起,如果這沒有意義,讓我試着寫得更清楚。 現在應該更有意義了。 – Nyegaard

回答

3

更具體的表達式包含目標字符串:

//a[contains(@href, '2011-015196')] 

,或者更具體:

//a[contains(@href, 'case=2011-015196')] 
+0

不錯,工作完美! – Nyegaard

3

我想找到一個包含某些給定文本的元素,在我 情況下,它的文本2011-015196

使用這個XPath:

//*[@*[contains(., '2011-015196')]] 

會怎樣我使用Xpath在回發中找到了文本?

使用此:

string-length(substring-before(//*/@*[contains(., '2011-015196')], 
           '2011-015196')) 

這會告訴你包含它的屬性中的偏移量2011-015196

看起來爲 a元素,其 href屬性
+0

謝謝拉爾斯你的建議也適用!我的意思是我需要將鏈接定位爲Selenium 2中的webelement,以便我可以點擊它。我在頁面上看到很多元素,看起來像是我發佈的元素,所以我需要選擇正確的文本。 – Nyegaard

+0

+1 - 我懷疑OP是在尋找一個特定的'a'元素,但你的答案絕對值得讚賞。 –

+0

@lwburk:感謝您的投票。對你的理解不是(最初)在問題中給出的具體細節。 – LarsH

相關問題