1

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

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

我将不胜感激任何帮助。

4

3 回答 3

0

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

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

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

于 2013-02-16T06:38:04.157 回答
0

您可以使用 xpath。如果 div 类是常量,则可以使用类似:

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

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

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

于 2013-02-16T06:49:04.483 回答
0

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

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

这将选择第一个 div,其onclick属性的值包含/challenge/index/rfp_id.

于 2014-04-03T14:05:35.087 回答