2017-04-13 184 views
0

我想在這裏找到test1,但是我不能。有人能告訴我我做錯了什麼嗎?在Webdriver中查找元素

<button class="btn toggle-tab active" data-filter="test1">test1</button> 
<button class="btn toggle-tab" data-filter="test2">test2</button> 
<button class="btn toggle-tab" data-filter="test3">test3</button> 
<button class="btn toggle-tab" data-filter="test4">test4</button 

我曾嘗試爲 -

.//*[text()='test1'] 

.//title[text()='test1'] 

.//data-filter[text()="test1"] 
+0

是另一個框架內的按鈕? –

+0

當你說它沒有找到,是否有異常消息?您應該花一些時間閱讀XPath並瞭解它們是如何形成的。您錯誤地使用了它們,但這裏超出了評論的範圍來解釋所有內容。 – JeffC

+0

是的,該按鈕位於iframe中。我如何導航到正確的節點? – arm

回答

1
"//button[contains(.,'test1')]" 

還有其他的方法,但我更喜歡含有超過等號(=)和包含,我喜歡 「」在「文本()」

你有效搜索的第一個標記「按鈕」,其中包含文本「測試1」

這個問題更XPath的關係,所以你可能要包括的XPath標籤在您未來的帖子中提到他們。

+0

「//button[contains(.,'test1')]」不起作用:( – arm

+0

請向我顯示您的代碼,至少請執行檢索的行。 –

0

XPath查找linktext的是 - // htmltag [文本()= 'linktext的']

在這裏,你的情況下,XPath的將是 - //按鈕[文本()= 'test1']

0

而不是使用XPath定位元素,請嘗試使用CSS選擇器。 test1的CSS選擇器將爲按鈕[class $ ='active']。 在查找元素時使用id,CSS選擇器或類名總是比較好,在最壞的情況下通常首選元素,幸運的是,我遇到過幾種情況。

相關問題