2016-06-05 5 views
0

Я пробую этот xpath, но я не знаю, как продолжить отсюда?
Как нажимать на элемент «8-й день»? Я использую селен WebDriver с Явой:не удается найти элемент по xpath с помощью Java

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

Я не знаю, как продолжить, когда я добавить «/ дела [„8“]» я получаю сообщение об ошибке

HTML-странице является:

<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> 

ответ

0

Tweaking ответ @alecxe дал выше ... Это выглядит из примера, что восьмой день не всегда появляется в том же месте в документе, поэтому попробуйте:

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

Спасибо! Я думаю, вы можете использовать 'findElement' вместо' findElements'. – alecxe

0

Если положение искомого элемента фиксировано, будет использовать findElements() и получить нужный элемент индексом из списка:

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

7 Мы используем так индексация начинается с 0.

0

Используйте это:

driver.findElement(By.xpath(//div[@class='dates']/div[@class='pointer' and contains(text(),'8')]); 
Смежные вопросы