【问题标题】:Selenium clicking on javascript linkSelenium 点击 javascript 链接
【发布时间】:2011-01-25 15:18:41
【问题描述】:

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

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

selenium.click("link=Delete");

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

<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 命令本身。我还没有弄清楚怎么做,有人能指出我正确的方向吗?

【问题讨论】:

  • 谢谢大家!我最终得到了这个 xpath: selenium.click("//tr[td[a[contains(@href, '" + fileName + "')]]]/td/a[contains(text(), 'Delete' )]");这就像一个魅力!
  • 如果以下答案对您有所帮助,请考虑将其中最有用的答案标记为答案。至少考虑对所有对您有帮助的答案投赞成票。

标签: java selenium


【解决方案1】:

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

如果是这样,适当的 XPath 应该是:

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

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

【讨论】:

    【解决方案2】:

    有一个名为 XPath Checker 的 Firefox 扩展。您可以在 firefox 中打开 html 源代码,然后获取所需的 XPath。但是,我记得有些 XPath 表达式在 Selenium 中无法正常工作。

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

        出于两个原因,我倾向于将 CSS 用于 Selenium 标识符 -

        1. 可读性
        2. 浏览器独立性(IE 上的 XPath 识别速度较慢)

        话虽如此,限制是多个具有相同名称的元素应该具有可区分的属性。

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

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

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

        【讨论】:

          猜你喜欢
          • 2013-02-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-10-06
          • 1970-01-01
          相关资源
          最近更新 更多