如何生成动态Xpath

时间:2015-10-23 12:34:43

标签: java xpath selenium-webdriver

如何生成动态Xpath? I)在我的项目中,所有模块的元素模式和位置​​都是相同的,只是id根据模块名称而改变

II)像我这样的项目中的Id模式

模块-1

driver.findElement(By.xpath("//form[@id='locationForm']/div[2]/fieldset/table/tbody/tr[3]/td[2]/input"));

模块-2

driver.findElement(By.xpath("//form[@id='courtTypeBean']/div[2]/fieldset/table/tbody/tr[3]/td[2]/input"));

II)在这种情况下,我们可以制作一些标准或模式,我们可以在所有模块中使用这些标准或模式作为通用,并且只传递id我们可以识别特定元素吗?

如果我想找到Module-1元素,那么我只需传递 - > locationForm的id,而不是整行

driver.findElement(By.xpath("//form[@id='locationForm']/div[2]/fieldset/table/tbody/tr[3]/td[2]/input"));

1 个答案:

答案 0 :(得分:0)

xpath语句是一个字符串,你可以像这样连接字符串:

String passedId = "locationForm";

driver.findElement(By.xpath("//form[@id='" + passedId +"']/div[2]/fieldset/table/tbody/tr[3]/td[2]/input"));

如果这不是您要求的,请告诉我。感谢。