在执行我的方法之一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),它就会按预期工作,但是我确实需要一种能够使用变量的方法。有人知道该怎么办吗?