需要打印selenium(xpath?)侧栏上的所有链接

时间:2011-08-04 17:46:58

标签: perl xpath selenium

我需要找到任何额外的链接并打印出来。我开始做:

get_xpath_count('//li/a')

并将其与包含侧边栏所有链接名称的数组的大小进行比较。当计数太高/太低时,我需要打印出所有额外/缺失的链接。我想列出名称,以便我可以将它与数组进行比较。我尝试了一些像get_text('//li/a')这样的东西,它返回第一个的名字。 get_text('//li/a[1])执行相同操作,但任何其他索引都不返回任何内容。

有什么想法吗?另外,我需要链接上显示的名称,而不是实际的href。

编辑*此外,我对selenium和Xpath都很陌生。请告诉我是否有我需要的信息,或者只是对我这样做的任何建议。

3 个答案:

答案 0 :(得分:0)

我已经能够使用CSS element locators让它工作了。由于我使用CSS选择器的频率远远超过Xpath,因此我发现使用Selenium也更容易。

$selenium->get_text("css=li a:nth-child(1)")
$selenium->get_text("css=li a:nth-child(2)")
$selenium->get_text("css=li a:nth-child(...)")
$selenium->get_text("css=li a:nth-child(n)")

答案 1 :(得分:0)

使用

(//li/a)[$someNumber]

这将为您提供XML文档中$someNumber - //li/a的文本。

为了知道用$someNumber代替的值,您需要知道这些元素的总数

count(//li/a)

答案 2 :(得分:0)

这是在JAVA中。你可以在perl中使用相同的概念

int totCountInPage=selenium.getXpathCount(//li/a);
for(int count=1;count<=totCountInPage;count++)
System.out.println(selenium.getText("xpath=//li[count]/a"));

这应该在所有li标签下的锚链接中打印文本。