Имитация движения мыши с капибарой

Введите эти свойства span

span{
    display:inline-block;
    vertical-align:middle;
}

Используйте display:inline-block; Когда вы используете свойство vertical-align. Это ассоциированные свойства

0
задан Incertus 4 March 2019 в 11:10
поделиться

1 ответ

Это напрямую не поддерживается ни в каких драйверах Capybara, о которых я знаю, однако вы можете подделать указатель мыши с помощью некоторого JS, как показано в Визуализация / показать положение курсора мыши в тестах на селен 2 (например, PHPUnit Webdriver) [ 113]

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

// Create mouse following image.
var seleniumFollowerImg = document.createElement("img");

// Set image properties.
seleniumFollowerImg.setAttribute('src', 'data:image/png;base64,'
    + 'iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAQAAACGG/bgAAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAA'
    + 'HsYAAB7GAZEt8iwAAAAHdElNRQfgAwgMIwdxU/i7AAABZklEQVQ4y43TsU4UURSH8W+XmYwkS2I0'
    + '9CRKpKGhsvIJjG9giQmliHFZlkUIGnEF7KTiCagpsYHWhoTQaiUUxLixYZb5KAAZZhbunu7O/PKf'
    + 'e+fcA+/pqwb4DuximEqXhT4iI8dMpBWEsWsuGYdpZFttiLSSgTvhZ1W/SvfO1CvYdV1kPghV68a3'
    + '0zzUWZH5pBqEui7dnqlFmLoq0gxC1XfGZdoLal2kea8ahLoqKXNAJQBT2yJzwUTVt0bS6ANqy1ga'
    + 'VCEq/oVTtjji4hQVhhnlYBH4WIJV9vlkXLm+10R8oJb79Jl1j9UdazJRGpkrmNkSF9SOz2T71s7M'
    + 'SIfD2lmmfjGSRz3hK8l4w1P+bah/HJLN0sys2JSMZQB+jKo6KSc8vLlLn5ikzF4268Wg2+pPOWW6'
    + 'ONcpr3PrXy9VfS473M/D7H+TLmrqsXtOGctvxvMv2oVNP+Av0uHbzbxyJaywyUjx8TlnPY2YxqkD'
    + 'dAAAAABJRU5ErkJggg==');
seleniumFollowerImg.setAttribute('id', 'selenium_mouse_follower');
seleniumFollowerImg.setAttribute('style', 'position: absolute; z-index: 99999999999; pointer-events: none;');

// Add mouse follower to the web page.
document.body.appendChild(seleniumFollowerImg);
document.addEventListener('mousemove', function(e) {
  const mousePointer = document.getElementById('selenium_mouse_follower');
  mousePointer.style.left = e.pageX + 'px';
  mousePointer.style.top = e.pageY + 'px';
});

Затем вам необходимо убедиться, что JS выполняется после каждое изменение страницы (посещение, щелчок, который перемещается и т. д.). Есть много способов сделать это, при этом самым простым является либо условно добавить код в приложение в тестовом режиме, либо вызвать его вручную с помощью вспомогательного метода, вызывающего page.execute_js всякий раз, когда вы хотите, чтобы положение мыши отображалось для следующих действий. [ 116]

0
ответ дан Thomas Walpole 4 March 2019 в 11:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: