2012-04-11 101 views
2

我在頁面上有<a href="/address_shops/">Адреса магазинов</a>,並且想要存儲文本,然後點擊此鏈接並驗證我將在哪裏包含此文本的頁眉。所以我試圖通過xpath查找元素,並且selenium.getText獲得正確的結果,但是selenium.click轉到另一個鏈接。我在哪裏犯了一個錯誤?提前致謝!在selenium.get.Text和selenium中使用xpath。點擊

String m_1 = selenium.getText("xpath=html/body/div[3]/div[2]/div[1]/h4[1]"); 
    selenium.click("xpath=html/body/div[3]/div[2]/div[1]/h4[1]"); 
    selenium.waitForPageToLoad("30000"); 
    assertTrue(selenium.getText("css=h3").contains(m_1)); 

頁面:http://www.svyaznoy.ru/map/


簡歷: 使用xpath=//descendant::a[@href='/address_shops/'][2]css=div.deff_one_column a[href='/address_shops/']使用xpath=//a[@href='/address_shops/']得到正確的結果

- 元素當前不可見 xpath=//a[@href='/address_shops/'][2] - 找不到的元素

回答

0

對不起,沒有注意到頁面鏈接。第二個鏈接的Css可以是這樣的css=div.deff_one_column a[href='/address_shops/']

+0

輕鬆獲取鏈接本身,謝謝,它的工作原理! – newbie 2012-04-13 10:24:16

1

有一個失蹤在表達式的開頭斜線。我有點吃驚 - 第一個斜槓意味着「從根節點開始」。

此外,最好選擇<a>而不是<h>。有時會起作用,有時會出現誤判,有時點擊根本無法做任何事情。儘量做到儘可能具體。

試試這個。

String m1 = selenium.getText("xpath=/html/body/div[3]/div[2]/div/h4/a"); 
selenium.click("xpath=/html/body/div[3]/div[2]/div/h4/a"); 
selenium.waitForPageToLoad("30000"); 
// your variable is named m1, but m_1 was used here 
assertTrue(selenium.getText("css=h3").contains(m1)); 

順便說一句,您可以使用甚至更好的XPath表達式。請參閱the documentation,它真的是有幫助的。只是一個例子,這也可以工作,並且更易於書寫和閱讀:

String m1 = selenium.getText("xpath=//a[@href='/address_shops/']"); 
selenium.click("xpath=//a[@href='/address_shops/']"); 
+1

甚至是selenium.click(「link =」+ m1); – 2012-04-11 10:09:53

+0

@Slanec「你的變量被命名爲m1,但m_1在這裏被使用」 - 抱歉,編輯這篇文章多次。其實我有m_1 – newbie 2012-04-11 10:40:02

+0

@AlehDouhi我不能使用這個,因爲這個頁面有兩個鏈接,但我需要檢查第二個 – newbie 2012-04-11 10:42:15

相關問題