2016-12-28 144 views
2

我想点击一个链接使用标签内的span标签内的属性,不知道它是否有助于点击链接。如何点击一个动态变化的链接(Selenium Webdriver)

下面是HTML代码两个不同的例子

1.

<span class="handIcon" title="Click Task" id="hand_175931762" campaignid="799214" link="https://www.facebook.com/profile.php?id=100006050206969" onclick="updateTask(175931762, this)"><i class="fa fa-hand-o-up custom"></i></span> 

2.

<span id="hand_175931760" campaignid="802712" link="https://www.facebook.com/Majumder-Enterprise-154524208363753/"><i class="fa fa-hand-o-up custom"></i></span> 

凡handIcon是链接的图像。

In 1. id="hand_175931762"不同于2. id="hand_175931760" HTML代码。

他们是我想单击动态更改的链接,当单击一个链接时会等待30秒,之后下一个链接处于活动状态,然后再等待30秒,继续。

我使用此代码

driver.findElement(By.xpath("//*[contains(text(),'hand')]")).click();, 

但它引发我错误提前

org.openqa.selenium:ElementNotVisibleException 

感谢

价值 id

回答

0

属性不是text(),使你的元素不能与"//*[contains(text(),'hand')]"匹配。如果你的元素看起来像<span>hand_175931762</span>

尝试以下,而不是这可以仅适用于:

driver.findElement(By.xpath("//span[starts-with(@id, 'hand_')]")).click(); 
+0

当我使用硒IDE,命令是点击,然后目标是//跨度[@ ID = 'hand_175931753'] /我,所以我必须检查何时链接处于活动状态或哪个链接处于活动状态,我认为该逻​​辑将起作用,但不确定。 – user159

+0

具有硬编码“id”值的'XPath'将不起作用。你是什​​么意思'检查何时链接激活或哪个链接处于激活状态? – Andersson

+0

有100个链接是一个一个激活的,当你点击链接时,弹出的链接将保持活动30秒,然后自行关闭,然后下一个链接处于活动状态,直到所有链接都被禁用。 – user159

0

代码的工作,因为它不给任何错误,但链接不会被点击,因为链接的ID已经改变,因为该链接与此ID <span>hand_175931762</span>已被点击。不再有效的链接。

<span>hand_175931762</span> 

<span class="handIcon" title="Click Task" id="hand_175931753" campaignid="797945" link="www.SAP.in" onclick="updateTask(175931753, this)"><i class="fa fa-hand-o-up custom"></i></span> 

由于@Andersson

相关问题