如何将变量放入find.element?

时间:2015-04-16 13:40:21

标签: java testing selenium webdriver

我需要跟踪data-user的元素,它必须是变量。这是我的代码,有效:

driver.findElement(By.cssSelector("div[data-user='Caroline']")).click();

我补充说:

String UserName = "Caroline";

然后修改find.Element。以下是我尝试过的内容:

driver.findElement(By.cssSelector("div[data-user=""+ UserName]")).click();
driver.findElement(By.cssSelector("div[data-user=''+ UserName]")).click();
driver.findElement(By.cssSelector("div[data-user="'+ UserName +'"]")).click();
driver.findElement(By.cssSelector("div[data-user='"+ UserName +"']")).click();

但这些都不起作用。对这一个有任何想法吗?

编辑:

案例是点击特定的搜索结果' Caroline'当我在搜索文本中输入另一个字母时,搜索结果会动态显示。

2 个答案:

答案 0 :(得分:1)

如果cssSelector方法可以像这样进行争论,那么底层应该可以工作。我知道XPath可以,所以试试:

driver.findElement(By.XPath("//div[@data-user='"+ UserName +"']")).click();

但是,作为旁注,使用ID总是优于css或xpath。或者让开发人员按照here描述的方式提供与您可以挂钩的课程相互关联的项目,这样他们就不会改变。

答案 1 :(得分:0)

正如您所提到的,这应该没有任何问题

String UserName = "Caroline";
driver.findElement(By.cssSelector("div[data-user='"+ UserName +"']")).click();