I want to print some data using selenium, here is HTML:
<div class="details-row section box-margin-LRmd is-disabled">
<div class="inline-flex-group-v2">
<div class="item gutter-sm box-fixed col-encounter-type">
<label class="field-label">Encounter type</label>
<div data-element="encounter-details-encounter-type">
Office Visit
<!----> </div>
</div>
<div class="item gutter-sm box-fixed col-extra-padding">
<label class="field-label">Note type</label>
<div data-element="encounter-details-encounter-type">Case Review</div>
</div>
<div class="item gutter-sm box-fixed col-date">
<label class="field-label">Date</label>
<div data-element="encounter-details-date" class="clearfix">
05/01/2018
</div>
</div>
<div class="item gutter-sm box-fixed col-age visible-lg">
<label class="field-label">Age at encounter</label>
<div data-element="encounter-details-age">60 yrs</div>
</div>
<div class="item gutter-sm box-fixed col-extra-padding visible-xl">
<label class="field-label">Seen by</label>
<div data-element="encounter-details-seen-by">Kristina Abernathy</div>
</div>
<div class="item gutter-sm box-fixed col-extra-padding visible-xl">
<label class="field-label">Facility</label>
<div data-element="encounter-details-facility">FOCUS Pittsburgh Free Health Center</div>
</div>
<div class="item gutter-sm visible-xl">
<label class="field-label">Status</label>
<div>
<span data-element="encounter-details-signed-by">Electronically signed by Kristina Abernathy at 05/01/2018 07:21 pm</span>
</div>
</div>
<!----> </div>
<div class="inline-flex-group-v2 hidden-xl box-padding-Tmd-v2 lower">
<div class="item gutter-lg box-fixed col-age hidden-lg">
<label class="field-label">Age at encounter</label>
<div data-element="encounter-details-age">60 yrs</div>
</div>
<div class="item gutter-lg box-fixed col-seen-by">
<label class="field-label">Seen by</label>
<div data-element="encounter-details-seen-by">Kristina Abernathy</div>
</div>
<div class="item gutter-lg box-fixed">
<label class="field-label">Facility</label>
<div data-element="encounter-details-facility">Health Center</div>
</div>
<div class="item gutter-sm">
<label class="field-label">Status</label>
<div>
<span data-element="encounter-details-signed-by">Electronically signed by Kristina Abernathy at 05/01/2018 07:21 pm</span>
</div>
</div>
<!----> </div>
</div>
I want to print encounter type, note type, date, age and seen by. So I use code :
System.out.println("Encounter details");
System.out.println("ENCOUNTER TYPE: " + driver.findElement(By.xpath("//div[@data-element='encounter-details-encounter-type']")).getText());
System.out.println("NOTE TYPE: " + driver.findElement(By.xpath("//div[@data-element='encounter-details-encounter-type']")).getText());
System.out.println("DATE: " + driver.findElement(By.xpath("//div[@data-element='encounter-details-date']")).getText());
System.out.println("AGE OF ENCOUNTER: " + driver.findElement(By.xpath("//div[@data-element='encounter-details-age']")).getText());
System.out.println("SEEN BY: " + driver.findElement(By.xpath("//div[@data-element='encounter-details-seen-by']")).getText());
And I got:
Encounter details
ENCOUNTER TYPE: Office Visit
NOTE TYPE: Office Visit
DATE: 05/01/2018
AGE OF ENCOUNTER: 60 yrs
SEEN BY:
So encounter type and note type have same attribute "data-element='encounter-details-encounter-type'", that's why I got same result for "encounter details" and "encounter type", but what I want to get is
ENCOUNTER TYPE: Office Visit
NOTE TYPE: Case Review
DATE: 05/01/2018
AGE OF ENCOUNTER: 60 yrs
SEEN BY: Kristina Abernathy
So how should I get correct note type and why can't I get "SEEN BY" content? Thanks!