t.me/atinfo_chat Telegram группа по автоматизации тестирования

Проблемы с локатором


(Alena) #1

Код страницы

<table id="ext-comp-1150" class="x-btn x-btn-noicon x-box-item" cellspacing="0" style="width: auto; left: 496px; top: 0px;">

         <tbody class="x-btn-small x-btn-icon-small-left">
          <tr>
          <tr>
              <td class="x-btn-ml">
              <td class="x-btn-mc">
                     <em unselectable="on">
                          <button id="ext-gen420" class="x-btn-text" type="button">Очистить</button>
                    </em>

Написала путь:

driver.findElement(By.xpath("//table [@id='ext-comp-1150']//em//button[text() = 'Очистить']")).click();

Но Selenium выдает ошибку -

The given selector //table [@id='ext-comp-1150']//em//button[text() = 'Очистить'] is either invalid or does not result in a WebElement.

или

Unable to locate element

Так же пробовала варианты

//table [@id='ext-comp-1150']//button[text() = 'Очистить']]

//*[@class='x-btn x-btn-noicon x-box-item x-btn-over'/button[text()='Очистить']

//*table [@id='ext-comp-1150']/button[text()='Очистить']

.//table [@id='ext-comp-1150']//tr[2]//td[2]//em//button[text()='Очистить']

Тоже не работает.

По button id - не катит(он может меняться). Даже не знаю что еще  такого можно придумать. 

Помогите плиз.

 


(Mykhailo Poliarush) #2

а вы пробовали использовать firebug и firepath для проверки ваших выражений?


(Alexander Petrovich) #3

Пробелы и скобки...


(Alena) #4

Изначально все пути написаны и проверены с помощью firebug и firepath и только потом я все переносила в Eclipse.


(Mykhailo Poliarush) #5

по тому, что я вижу driver.findElement(By.xpath("//table [@id='ext-comp-1150']//em//button[text() = 'Очистить']")).click()

то тут все верно

во всех этих xpath есть один общий знаменатель, [text()='Очистить'], 

поробуйте написвать xpath без него 


(Mykhailo Poliarush) #6

также попробуйте тогда через css

table#ext-comp-1150 button:contains('Очистить')


(Alena) #7

 Просто [text()='Очистить']  не получится  - на странице 5 кнопок с таким названием


(Mykhailo Poliarush) #8

Алена, вставь пожалуйста всю свою страницу на http://pastebin.com/

а там и посмотрим


(Alena) #9

Как оказалось проблема была в точке. Все начало работать с таким кодом

driver.findElement(By.xpath(".//*[@id='ext-comp-1158']//button")).click();

 

Всем большое спасибо :)


(Alena) #10

Тест заработал с таким кодом

driver.findElement(By.xpath(".//*[@id='ext-comp-1158']//button")).click();

По видимому надо было просто поставить точку)

 

Большое спасибо всем :)


(Mykhailo Poliarush) #11

странно, что проблема была в точке.

честно говоря, не сильно вериться :)