2013-02-16 142 views
0

我花了数小时试图找到使用Selenium WebDriver查找元素的方法。我假设我需要使用driver.findElement(By.xpath(“”)),但我不太确定如何。使用Selenium查找clickon元素。 (JAVA)

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

我将不胜感激任何帮助。

+0

什么是div包含在?再加一点html的结构,可以有一个相对路径,可以由更具体的东西构成。 – 2013-02-16 07:00:56

回答

0

我们都经过严格的寻找自动化功能测试解决方案最近,我们开始与硒。我们决定搜索其他解决方案的全部原因是我们的应用程序还具有动态ID,没有其他明显的XPath机制来识别它们。 Selenium无法识别页面上的这些元素,除非有一些额外的知识,正如您不能识别页面上的这些元素(如果您不知道它们是什么)。

如果您正在控制DOM创建,请考虑为此元素添加唯一的ID或类。

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

0

您可以使用xpath。如果DIV类是恒定的,你可以使用类似:

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

要查看的XPath,你可以安装Firefox插件叫做“的XPath检查”发现here,右键点击的DOM元素上并点击“查看Xpath的”选项来获取元素的xpath,然后您可以在代码中使用该xpath。

或者你甚至可以在适用于类似问题的xpath中使用正则表达式。 Xpath与正则表达式非常强大。

0

看起来你想单击具有on click属性的div,该属性包含不会更改的某些文本,而忽略执行该操作的部分。在这种情况下,使用XPath这样的:

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

这将选择与onclick属性与含有/challenge/index/rfp_id一个值的第一格。

相关问题