I'm trying to collect following siblings until a certain sibling, But I still can't figure out how to do it, I tried to locate before and after sibling with class name but I got wrong results
My html is :
<div class="MainClass">
<div class="InfoClass">
<div class="left-wrap">
<span class="date">2 August 2020</span>
</div>
</div>
<div class="DataClass">
<em class="Code">
<span>1</span>
</em>
</div>
<div class="DataClass">
<em class="Code">
<span>2</span>
</em>
</div>
<div class="DataClass">
<em class="Code">
<span>3</span>
</em>
</div>
<div class="DataClass">
<em class="Code">
<span>4</span>
</em>
</div>
<div class="InfoClass">
<div class="left-wrap">
<span class="date">15 August 2020</span>
</div>
</div>
<div class="DataClass">
<em class="Code">
<span>5</span>
</em>
</div>
<div class="DataClass">
<em class="Code">
<span>6</span>
</em>
</div>
</div>
Here is my Python Code :
mainClass = driver.find_elements_by_xpath("//div[@class='MainClass']//following-sibling::div[@class='InfoClass']")
for mc in mainClass:
kDate = header.find_element_by_xpath(".//span[@class='date']").text
print(kDate)
datarows = header.find_elements_by_xpath("following-sibling::div[@class='DataClass' and preceding-sibling::div[@class='DataClass']]")
for datarow in datarows:
mc = datarow.find_element_by_xpath(".//em[@class='Code']").text
print("Code : "+mc)
The Results I got:
2 August 2020
2
3
4
5
6
15 August 2020
5
6
What I want as a result is this , class "Code" grouped by dates :
2 August 2020
1
2
3
4
15 August 2020
5
6