我花了好几个小时试图找到使用Selenium WebDriver找到Element的方法。我假设我需要使用driver.findElement(By.xpath(“”)),但我不太确定如何。
我不知何故需要找到并点击“clickon”元素。问题是该元素的一部分正在改变(见截图)我需要从文件中提取并放入xpath。
我将不胜感激任何帮助。
答案 0 :(得分:0)
我们最近一直在严格寻找自动化功能测试解决方案,我们从Selenium开始。我们决定搜索其他解决方案的全部原因是我们的应用程序还具有动态ID,没有其他明显的XPath机制来识别它们。 Selenium无法在没有其他知识的情况下识别页面上的这些元素,就像您在页面上无法识别这些元素一样,如果您还不知道它们是什么。
如果您正在控制DOM创建,请考虑向此元素添加唯一ID或类。
我们最近从testPlant遇到了eggPlant,这是一种有趣的功能测试方法。它基本上是基于图像的。其他可行的解决方案是Ranorex或HP的QTP或SmartBear的TestComplete。
答案 1 :(得分:0)
您可以使用xpath。如果div类是常量,你可以使用类似的东西:
driver.findElement(By.xpath("list-row field-item")).click();
要查看xpath,您可以安装名为' xpath checker'的firefox插件。找到here并右键点击dom元素,然后点击'查看Xpath'获取元素的xpath的选项,然后您可以在代码中使用该xpath。
或者您甚至可以在xpath中使用适用于类似问题的正则表达式。带正则表达式的Xpath非常强大。
答案 2 :(得分:0)
您似乎想要点击具有on click
属性的div,其中包含某些不会更改的文本,而忽略了所执行的部分。在这种情况下,使用像这样的xpath:
//div[contains(@onclick, '/challenge/index/rfp_id/')]
这将选择带有onclick
属性的第一个div,其值包含/challenge/index/rfp_id
。