Selenium点击javascript链接

时间:2011-01-25 15:18:41

标签: java selenium

我在使用Java和Spring编写Selenium测试时遇到了问题。

我需要Selenium点击包含多个删除按钮(文件列表)的页面上的删除按钮。使用Selenium IDE生成以下代码

selenium.click( “链接=删除”);

基本没用。我无法弄清楚如何定位表中包含的特定元素。这是来源:

<tr onmouseover="mouseOver(this)" onmouseout="mouseOut(this)">
  <td class="thumbnail" align="center"><img src="/services/images/nav/resources.gif" /></td>
  <td colspan="3" onClick="nav('FileName'); return false">
    <a href="javascript:nav('FileName')">Basics</a></td>
 <td>
   <a class="actionButton" href="javascript:del('FileName')">Delete</a></td>
<td>&nbsp;</td>
</tr>   

我需要 a)找到一种方法来返回正确的删除操作的xpath或 b)通过java代码发送javascript命令本身。我无法弄清楚如何做到,任何人都可以指出我正确的方向吗?

4 个答案:

答案 0 :(得分:3)

“文件名”部分是唯一的吗?

如果是这样,适当的XPath将是:

selenium.click("//a[@href=\"javascript:del('FileName')\"")

另外,您是否单击了Selenium IDE中的第一个删除链接?如果是这样,请尝试点击其中一个,然后看看它是什么。

答案 1 :(得分:0)

这个firefox扩展名为XPath Checker。您可以在firefox中打开html源代码,然后根据需要获取XPath。但是,我记得在Selenium中没有正常工作的一些XPath表达式存在问题。

答案 2 :(得分:0)

如果它是一个工具来找出你所追求的按钮的xpath,那么有各种选择:

  • 使用FireBug(Firefox插件):如果右键单击firebug的HTML选项卡中的元素,则可以将其Xpath表达式复制到剪贴板。
  • 使用Xpath(Firefox插件):一个允许您生成,编辑和检查xpath表达式的插件

答案 3 :(得分:0)

我偏向于将CSS用于Selenium标识符有两个原因 -

  1. 可读性
  2. 浏览器独立性(IE上的XPath识别速度较慢)
  3. 话虽如此,限制是具有相同名称的多个元素应该具有可区分的属性。

    在您的源代码中,带有CSS标识符的Selenium命令将显示为:

    selenium.click("css=a.actionButton[href=javascript:del('FileName')]");
    

    如果确实href属性提供了其他删除按钮之间的区别