我需要跟踪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'当我在搜索文本中输入另一个字母时,搜索结果会动态显示。
答案 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();