2012-04-11 80 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

相关问题