Selenium WebDriver mouseMove с переменными в NodeJS - PullRequest
0 голосов
/ 17 декабря 2018

У меня действительно глупая проблема с выполнением одного из моих методов, mouseMove ().С помощью метода mouseMove () я могу переместить курсор на определенную позицию.Все работает хорошо, пока я пишу так:

await actionSeq.mouseMove({x: 400, y: 400});

Но если я использую что-то вроде:

await actionSeq.mouseMove({x: posX, y: posY});

мой код перестает работать или говорит лучше, курсор не повторяетсярасположен в нужном месте.Мой код выглядит примерно так:

try {
       await driver.get('http://192.168.1.12:8080/');
       await driver.wait(until.titleIs('Rocket Man'), 10000);
       await driver.wait(until.elementLocated(By.id('fakeBtn')), 10000);
       await driver.sleep(3000);
       var rect = await 
       driver.findElement(By.id('fakeBtn')).getRect().then((pos) => { 
          return pos;
       });
       let res = await driver.findElement(By.id('dataHolder')).getText().then(result => {
          return JSON.parse(result);
       });

       let xOffset123 = ((rect.x / res.scale) - rect.x) + 10;
       let yOffset123 = ((rect.y / res.scale) - rect.y) + 10;
       posX = ((rect.x / res.scale)) + 10;
       posY = ((rect.y / res.scale)) + 10;
       await leg2.mouseMove({x: posX, y: posY}, {x: 0, y: 0}).mouseDown().mouseUp()
                 .perform().then(res => { console.log('click') });

       await driver.sleep(3500);
    } finally {
                 await driver.quit();
    }

Почему я не могу использовать предварительно вычисленные переменные для определения местоположения?Как только я ввожу фиксированные значения (x: 400, y: 500), все работает как положено, но мне действительно нужен способ использовать переменные.Кто-нибудь знает, что делать?

...