2016-06-05 7 views
0

finden Ich versuche diesen Xpath, aber ich weiß nicht, wie man von hier fortfahren?
Wie klickt man auf das Element "8. Tag"? Ich bin mit Selen WebDriver mit java:kann Element nicht durch Xpath mit Java

driver.findElement(By.xpath(//div[@class='dates']/div[@class='pointer']...); 

Ich weiß nicht, wie man weiter, wenn ich hinzufügen „/ div [‚8‘]“ Ich erhalte einen Fehler

der HTML-Code der Seite ist:

<div id="monthlist" style="left: 0px; top: 0px;"> 
<div style="left: -1px; position: absolute;"> 
<div class="month" style="left: 0px;"> 
<div class="title">יוני 2016 </div> 
<div class="weekdays_top"></div> 
<div class="body"> 
<div class="weekdays"> 
<div class="dates"> 
<div class="invalid" style="border-bottom: 1px solid rgb(221, 221, 221);"></div> 
<div class="invalid" style="border-bottom: 1px solid rgb(221, 221, 221);"></div> 
<div class="invalid" style="border-bottom: 1px solid rgb(221, 221, 221);"></div> 
<div class="invalid" style="border-bottom: 1px solid rgb(221, 221, 221);">1</div> 
<div class="invalid" style="border-bottom: 1px solid rgb(221, 221, 221);">2</div> 
<div class="invalid" style="border-bottom: 1px solid rgb(221, 221, 221);">3</div> 
<div class="invalid" style="border-bottom: 1px solid rgb(221, 221, 221);">4</div> 
<div class="pointer today" style="border-bottom: 1px solid rgb(221, 221, 221);">5</div> 
<div class="pointer" style="border-bottom: 1px solid rgb(221, 221, 221);">6</div> 
<div class="pointer" style="border-bottom: 1px solid rgb(221, 221, 221);">7</div> 
<div class="pointer" style="border-bottom: 1px solid rgb(221, 221, 221);">8</div> 
<div class="pointer" style="border-bottom: 1px solid rgb(221, 221, 221);">9</div> 
<div class="pointer" style="border-bottom: 1px solid rgb(221, 221, 221);">10</div> 
<div class="pointer" style="border-bottom: 1px solid rgb(221, 221, 221);">11</div> 
<div class="pointer" style="border-bottom: 1px solid rgb(221, 221, 221);">12</div> 
<div class="pointer" style="border-bottom: 1px solid rgb(221, 221, 221);">13</div> 
<div class="pointer" style="border-bottom: 1px solid rgb(221, 221, 221);">14</div> 
<div class="pointer" style="border-bottom: 1px solid rgb(221, 221, 221);">15</div> 
<div class="pointer" style="border-bottom: 1px solid rgb(221, 221, 221);">16</div> 
<div class="pointer" style="border-bottom: 1px solid rgb(221, 221, 221);">17</div> 
<div class="pointer" style="border-bottom: 1px solid rgb(221, 221, 221);">18</div> 
<div class="pointer" style="border-bottom: 1px solid rgb(221, 221, 221);">19</div> 
<div class="pointer" style="border-bottom: 1px solid rgb(221, 221, 221);">20</div> 
<div class="pointer" style="border-bottom: 1px solid rgb(221, 221, 221);">21</div> 
<div class="pointer" style="border-bottom: 1px solid rgb(221, 221, 221);">22</div> 
<div class="pointer" style="border-bottom: 1px solid rgb(221, 221, 221);">23</div> 
<div class="pointer" style="border-bottom: 1px solid rgb(221, 221, 221);">24</div> 
<div class="pointer" style="border-bottom: 1px solid rgb(221, 221, 221);">25</div> 
<div class="pointer" style="border-bottom: 1px solid rgb(221, 221, 221);">26</div> 
<div class="pointer" style="border-bottom: 1px solid rgb(221, 221, 221);">27</div> 
<div class="pointer" style="border-bottom: 1px solid rgb(221, 221, 221);">28</div> 
<div class="pointer" style="border-bottom: 1px solid rgb(221, 221, 221);">29</div> 
<div class="pointer" style="border-bottom: 1px solid rgb(221, 221, 221);">30</div> 
</div> 
</div> 
<div class="bottom"></div> 
</div> 
<div style="left: 163px; position: absolute;"> 
<div class="month" style="left: 164px;"> 
<div class="title">יולי 2016 </div> 
<div class="weekdays_top"></div> 
<div class="body"> 
<div class="weekdays"> 
<div class="dates"> 
<div class="invalid" style="border-bottom: 1px solid rgb(221, 221, 221);"></div> 
<div class="invalid" style="border-bottom: 1px solid rgb(221, 221, 221);"></div> 
<div class="invalid" style="border-bottom: 1px solid rgb(221, 221, 221);"></div> 
<div class="invalid" style="border-bottom: 1px solid rgb(221, 221, 221);"></div> 
<div class="invalid" style="border-bottom: 1px solid rgb(221, 221, 221);"></div> 
<div class="pointer" style="border-bottom: 1px solid rgb(221, 221, 221);">1</div> 
<div class="pointer" style="border-bottom: 1px solid rgb(221, 221, 221);">2</div> 
<div class="pointer" style="border-bottom: 1px solid rgb(221, 221, 221);">3</div> 
<div class="pointer" style="border-bottom: 1px solid rgb(221, 221, 221);">4</div> 
<div class="pointer" style="border-bottom: 1px solid rgb(221, 221, 221);">5</div> 
<div class="pointer" style="border-bottom: 1px solid rgb(221, 221, 221);">6</div> 
<div class="pointer" style="border-bottom: 1px solid rgb(221, 221, 221);">7</div> 
<div class="pointer" style="border-bottom: 1px solid rgb(221, 221, 221);">8</div> 
<div class="pointer" style="border-bottom: 1px solid rgb(221, 221, 221);">9</div> 
<div class="pointer" style="border-bottom: 1px solid rgb(221, 221, 221);">10</div> 
<div class="pointer" style="border-bottom: 1px solid rgb(221, 221, 221);">11</div> 
<div class="pointer" style="border-bottom: 1px solid rgb(221, 221, 221);">12</div> 
<div class="pointer" style="border-bottom: 1px solid rgb(221, 221, 221);">13</div> 
<div class="pointer" style="border-bottom: 1px solid rgb(221, 221, 221);">14</div> 
<div class="pointer" style="border-bottom: 1px solid rgb(221, 221, 221);">15</div> 
<div class="pointer" style="border-bottom: 1px solid rgb(221, 221, 221);">16</div> 
<div class="pointer" style="border-bottom: 1px solid rgb(221, 221, 221);">17</div> 
<div class="pointer" style="border-bottom: 1px solid rgb(221, 221, 221);">18</div> 
<div class="pointer" style="border-bottom: 1px solid rgb(221, 221, 221);">19</div> 
<div class="pointer" style="border-bottom: 1px solid rgb(221, 221, 221);">20</div> 
<div class="pointer" style="border-bottom: 1px solid rgb(221, 221, 221);">21</div> 
<div class="pointer" style="border-bottom: 1px solid rgb(221, 221, 221);">22</div> 
<div class="pointer" style="border-bottom: 1px solid rgb(221, 221, 221);">23</div> 
<div class="pointer" style="border-bottom: 1px solid rgb(221, 221, 221);">24</div> 
<div class="pointer" style="border-bottom: 1px solid rgb(221, 221, 221);">25</div> 
<div class="pointer" style="border-bottom: 1px solid rgb(221, 221, 221);">26</div> 
<div class="pointer" style="border-bottom: 1px solid rgb(221, 221, 221);">27</div> 
<div class="pointer" style="border-bottom: 1px solid rgb(221, 221, 221);">28</div> 
<div class="pointer" style="border-bottom: 1px solid rgb(221, 221, 221);">29</div> 
<div class="pointer" style="border-bottom: 1px solid rgb(221, 221, 221);">30</div> 
<div class="pointer" style="border-bottom: 1px solid rgb(221, 221, 221);">31</div> 
</div> 
</div> 

Antwort

0

die Antwort @alecxe Tweaking gab oben ... Es sieht aus dem Beispiel, dass der 8. Tag immer an der gleichen Stelle in dem Dokument nicht erscheint, daher versuchen:

WebElement desiredElement = driver.findElements(
    By.xpath("//div[@class='dates']/div[@class='pointer' and text()='8']") 
); 
+0

Dank! Ich denke, Sie können 'findElement' anstelle von' findElements' verwenden. – alecxe

0

Wenn die Position des gewünschten Elementes fixiert ist, wäre findElements() zu verwenden und das gewünschte Element durch den Index aus der Liste zu erhalten:

WebElement desiredElement = driver.findElements(By.xpath("//div[@class='dates']/div[@class='pointer']").get(7); 

Wir verwenden 7 da die Indizierung von startet 0.

0

Mit diesem:

driver.findElement(By.xpath(//div[@class='dates']/div[@class='pointer' and contains(text(),'8')]); 
Verwandte Themen