您好我是selinium ide和xpath
的新手,这就是我需要帮助的原因。我需要点击网站上的一些链接,我可以使它在1个链接中工作我不知道它将如何搜索并点击其他链接,因为它有不同的编号和帖子标题。链接看起来像这样。
http://imageshack.com/a/img27/328/zv17.png
<a href="/sample/15151-hey-you">post</a>
<a href="/sample/142151-im-okay">post</a>
<a href="/sample/512512-thats-fine">post</a>
我使用此xpath,它适用于第一个链接
//div[@id='main']/ul[2]/li[1][@class='notification-posted']/a[2]
点击1个链接和前面的链接
的正确xpath是什么请帮我解决这个问题
修改
非常感谢你的第一个代码,但不是第二个代码。但是ul中的每个帖子都很重要,你的代码正在处理ul。
<h5>20 seconds ago</h5>
<ul>
<li class="notification-posted">
<img height="15" alt="" src="/assets/images/icons/notification-posted.png" />
<a href="/account/54351-wews">wews</a>
send new
<a href="/news/53235">post</a> <!--//li[@class='notification-posted'][1]/a[2]-->
</li>
</ul>
<h5>3 minutes ago</h5>
<ul>
<li class="notification-posted">
<img height="15" alt="" src="/assets/images/icons/notification-posted.png" />
<a href="/account/632323-yokol">yokol</a>
submitted a new
<a href="/news/253129-loss">post</a> <!--//li[@class='notification-posted'][2]/a[2]-->
</li>
</ul>
<h5>4 minutes ago</h5>
<ul/>
<h3>6 minutes ago</h3>
<ul/>
<h5>7 minutes ago</h5>
<ul>
<h2>8 minutes ago</h2>
<ul />
<li class="notification-posted" />
<li class="notification-posted" />
<li class="notification-posted" />
<li class="notification-posted" />
<li class="notification-posted" />
<img height="15" alt="" src="/assets/images/icons/notification-posted.png" />
<a href="/account/153316-problem">hey</a>
send new
<a href="/news/25151-helloworld">post</a> <!--***Problem was here***-->
</ul>
应该是
//li[@class='notification-posted'][6]/a[2]
正确?但它解析其他链接。谢谢你的回答。
答案 0 :(得分:0)
/ul[2]...
应该返回第二个ul
假设每个ul
的帖子数量都是可变的,也不重要(即你想要帖子而不管他们在哪个ul
),那么你可以绕过{{1 }}
如果ul
唯一标识帖子,您可以按如下方式引用3个链接:
<li class='notification-posted'>
需要(//li[@class='notification-posted'])[1]/a[2]
(//li[@class='notification-posted'])[2]/a[2]
(//li[@class='notification-posted'])[3]/a[2]
(// ... )[n]/a[2]
,因为您在每个实例中的第二个链接之后。
如果这不够有选择性,您可以添加a[2]
必须还包含li
img
图标的过滤器,该图标始终与超链接相关联:
notification-posted.png
和链接(//li[@class='notification-posted'][img src="/assets/images/icons/notification-posted.png"])[1]//a[2]
和[2]
修改强>
您可以找到包含以下xpath的文本[3]
的所有链接:
post
使用以下xsl测试(h //a[@href][normalize-space(.)='post']
版本的html):
xhtml
给出:
<xsl:for-each select="//a[@href][normalize-space(.)='post']">
<Link>
<xsl:value-of select="@href"/>
</Link>
</xsl:for-each>
答案 1 :(得分:0)
您可以找到以下所有链接:
//a[starts-with(@href,'/news/')]
或:
//a[starts-with(@href,'/news/')]/@href