2

<a href="/address_shops/">Адреса магазинов</a>在页面上并想存储文本,然后单击此链接并验证我要访问的页面是否在标题中包含此文本。所以我尝试通过 xpath 查找元素,并且 selenium.getText 得到了正确的结果,但是 selenium.click 转到另一个链接。我在哪里犯了错误?提前致谢!

    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]- 未找到元素

4

2 回答 2

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 表达式。请参阅文档,它确实很有帮助。只是一个例子,这也可以工作,并且更容易编写和阅读:

String m1 = selenium.getText("xpath=//a[@href='/address_shops/']");
selenium.click("xpath=//a[@href='/address_shops/']");
于 2012-04-11T10:04:52.800 回答
0

抱歉,没有注意到页面链接。第二个链接的CSS可以是这样的css=div.deff_one_column a[href='/address_shops/']

于 2012-04-11T21:30:50.403 回答