Alena
(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>
<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 - не катит(он может меняться). Даже не знаю что еще такого можно придумать.
Помогите плиз.
polusok
(Mykhailo Poliarush)
#2
а вы пробовали использовать firebug и firepath для проверки ваших выражений?
Alena
(Alena)
#4
Изначально все пути написаны и проверены с помощью firebug и firepath и только потом я все переносила в Eclipse.
polusok
(Mykhailo Poliarush)
#5
по тому, что я вижу driver.findElement(By.xpath("//table [@id='ext-comp-1150']//em//button[text() = 'Очистить']")).click()
то тут все верно
во всех этих xpath есть один общий знаменатель, [text()='Очистить'],
поробуйте написвать xpath без него
polusok
(Mykhailo Poliarush)
#6
также попробуйте тогда через css
table#ext-comp-1150 button:contains('Очистить')
Alena
(Alena)
#7
Просто [text()='Очистить'] не получится - на странице 5 кнопок с таким названием
polusok
(Mykhailo Poliarush)
#8
Алена, вставь пожалуйста всю свою страницу на http://pastebin.com/
а там и посмотрим
Alena
(Alena)
#9
Как оказалось проблема была в точке. Все начало работать с таким кодом
driver.findElement(By.xpath(".//*[@id='ext-comp-1158']//button")).click();
Всем большое спасибо :)
Alena
(Alena)
#10
Тест заработал с таким кодом
driver.findElement(By.xpath(".//*[@id='ext-comp-1158']//button")).click();
По видимому надо было просто поставить точку)
Большое спасибо всем :)
polusok
(Mykhailo Poliarush)
#11
странно, что проблема была в точке.
честно говоря, не сильно вериться :)