Element not clickable at point ()


(Alexander Petrovich) #1

Привет

Есть тест который дважды пытается кликнуть в одну и туже ссылку, с одним и тем же локатором. Сначала это делает залогиненный юзер и всё проходит успешно, потом разлогинивается и тест повторяется абсолютно идентичный. Но почему-то после разлогинивания валится ошибка

WebDriverException: Message: u'Element is not clickable at point (87.5, 677)'

Как побороть такую напасть? Использую Selenium Webdriver (chromedriver 20.0.1133.0) + python 2.7, xpath = .//*[@id='button_contact']


(Taras) #2

а вручную если тестить то нормальное поведение ?

 


(Alexander Petrovich) #3

Естественно


(Taras) #4

может пропертя onclick () в JS актуальна только когда юзер залогинился, нужно сделать JS иньекцию попробовать:

 

function simulateClick() {
var element = document.getElementById('canvas_frame');
var evt = element.contentDocument.createEvent("MouseEvents");
evt.initEvent('click', true, true);
    element.dispatchEvent(evt);
}
simulateClick();

 


(Mykhailo Poliarush) #5

ну походу драйвер не попадает в нужную тебе ссылку, к сожалению,
это может быть баг, хотя не уверен, потому что у тебя может быть перекрытие элементов

как воркараунд, можно попробовать сместить точку нажатия. например вот так:

ActionChains(w).move_to_element_with_offset(link, 0, 20).click().perform()


(Alexander Petrovich) #6

http://code.google.com/p/chromedriver/issues/detail?id=22

Видимо, вот они грабли. В общем, ждём. Воркэраунд с action chains помог


(Mykhailo Poliarush) #7

ну видишь, софт тоже неидеальный

ну хорошо, что воркараунт у тебя заработал :)