【问题标题】:Finding clickon Element using Selenium. (JAVA)使用 Selenium 查找 clickon 元素。 (JAVA)
【发布时间】:2013-02-01 04:39:15
【问题描述】:

我已经花了几个小时试图找到使用 Selenium WebDriver 找到元素的方法。我假设我需要使用 driver.findElement(By.xpath("")),但我不太确定如何使用。

我不知何故需要找到并点击“clickon”元素。问题是该元素的一部分正在改变(见截图)我需要从文件中提取并放入 xpath。

如果有任何帮助,我将不胜感激。

【问题讨论】:

  • 这个div里面包含什么?多加一点 html 的结构,可以有一个相对路径,可以由更具体的东西形成。

标签: selenium


【解决方案1】:

我们最近一直在严格寻找自动化功能测试解决方案,我们从 Selenium 开始。我们决定寻找其他解决方案的全部原因是我们的应用程序也有动态 ID,没有其他明显的 XPath 机制来识别它们。如果没有一些额外的知识,Selenium 无法识别页面上的这些元素,就像如果您还不知道它们是什么,您将无法识别页面上的这些元素一样。

如果您要控制 DOM 创建,请考虑向该元素添加唯一 ID 或类。

我们最近从 testPlant 中发现了 eggPlant,它是一种有趣的功能测试方法。它本质上是基于图像的。其他可行的解决方案是 Ranorex 或 HP 的 QTP 或 SmartBear 的 TestComplete。

【讨论】:

    【解决方案2】:

    您可以使用 xpath。如果 div 类是常量,你可以使用类似的东西:

    driver.findElement(By.xpath("list-row field-item")).click();
    

    要查看xpath,您可以安装名为“xpath checker”的firefox插件,找到here并右键单击dom元素并单击“View Xpath”选项以获取元素的xpath,然后您可以使用该xpath在你的代码中。

    或者您甚至可以在适用于类似问题的 xpath 中使用正则表达式。带有正则表达式的 Xpath 真的很强大。

    【讨论】:

      【解决方案3】:

      您似乎想要单击具有on click 属性的div,该属性包含某些不会更改的文本,而忽略了更改的部分。在这种情况下,使用这样的 xpath:

      //div[contains(@onclick, '/challenge/index/rfp_id/')]
      

      这将选择第一个具有onclick 属性且值包含/challenge/index/rfp_id 的div。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-07-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多