我们如何获得元素的文本值

时间:2016-02-23 12:03:53

标签: java selenium

我们如何获得以下代码的元素的文本值。

代码:

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

我需要文字价值,例如&#34; 2016年2月&#34;

我尝试了这两个例子

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 个答案:

答案 0 :(得分:0)

原因是因为id ui-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人。

答案 1 :(得分:0)

尝试使用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();