有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何使用Xpath选择特定容器(<div>由CSS类定义)的跨元素?

我有以下HTML结构:

  <div class="divone"><span class="my_sapn">Sports</span></div>
  <div class="divtwo"><span class="my_sapn">Arts</span></div>
  <div class="divtwo"><span class="my_sapn">Computer</span></div>
  <div class="divone"><span class="my_sapn">Fashion</span></div>
  <div class="divtwo"><span class="my_sapn">Familly</span></div>

我想要实现的是在只有类divone的div中获取所有具有类my_span的元素
我的代码通过类my_span获得所有span,输出:Sports, Arts , Computer , Fashion , Familly
所需的输出:Sports , Fashion
Mycode:

List<WebElement> MainCategory = driver.findElements(By.xpath("//span[@class=\"my_span\"]"));

PS:我必须使用By.xpath而不是By.classame


共 (1) 个答案

  1. # 1 楼答案

    实现此结果的一种方法是使用以下XPath-1.0表达式:

    List<WebElement> MainCategory = driver.findElements(By.xpath("//div[@class='divone' and span/@class='my_span']/span"));
    

    实现相同输出的另一种方法是

    List<WebElement> MainCategory = driver.findElements(By.xpath("//span[../@class='divone' and @class='my_span']"));
    

    两种情况下的输出相同:

    Sports
    Fashion