有 Java 编程相关的问题?

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

java如何获取元素的文本值

我们如何为下面的代码获取元素的文本值

代码:

<div class="ui-datepicker-title">
    <span class="ui-datepicker-month">February</span>
    <span class="ui-datepicker-year">2016</span>
</div>

我需要像“2016年2月”这样的文本值

我试过这两个例子

String title =  driver.findElement(By.className("ui-datepicker-title")).getAttribute("value");
System.out.println(title);

String title =  driver.findElement(By.className("ui-datepicker-title")).getText();

System.out.println(title);

但无法获取此元素的文本值

driver.findElement(By.className("ui-datepicker-title"));

共 (2) 个答案

  1. # 1 楼答案

    尝试使用span标记的类名,因为文本存在于span中,而不是父div标记

    String month =  driver.findElement(By.className("ui-datepicker-month")).getText();
    String year =  driver.findElement(By.className("ui-datepicker-year")).getText();
    

    或者,如果页面中存在重复项,请尝试使用路径

    String month=  driver.findElement(By.xpath("//div[@class='ui-ui-datepicker-title']//span[@class='ui-datepicker-month'])).getText();
    String year =  driver.findElement(By.xpath("//div[@class='ui-ui-datepicker-title']//span[@class='ui-datepicker-year'])).getText();
    
  2. # 2 楼答案

    这是因为idui-datepicker-title没有值,它包含2个子html元素

    您需要执行以下操作以获取值:

    String month =  driver.findElement(By.className("ui-datepicker-month")).getText();
    String year =  driver.findElement(By.className("ui-datepicker-year")).getText();
    
    String result = month + " " + year;
    
    System.out.println(result); // February 2016
    

    *注意,我不是Java人