doDoubleClick()
, кажется, не работает на Chrome для меня, и я не уверен, почему.Я вижу, что ChomeDriver реализует действия, когда я пишу это .Как только это будет сделано, вы сможете сделать:
browser.moveToObject(someElement, x, y);
browser.actions().mouseDown().mouseUp().mouseDown().mouseUp().perform();
Но сейчас, когда я делаю это с ChromeDriver 2.45, я получаю:
Error: unimplemented command: session/c4dae3dead96649fc7c26f75709257da/actions
Так что если выне в далеком будущем, это то, что работает для меня:
function doubleClick(someElement, x, y) {
let attempt = 0;
let timeToDoubleClick;
do {
browser.moveToObject(someElement, x, y);
let startTime = Date.now();
browser.buttonPress(0).buttonPress(0);
timeToDoubleClick = Date.now() - startTime;
console.log("Time to double click: " + timeToDoubleClick);
if (timeToDoubleClick > 500) {
console.log("Waiting 10 seconds to allow the CPU to breath / check to see if a tab has opened...");
browser.pause(10000);
// In my case I'm expecting a new tab to open
if(browser.getTabIds().length > 1) {
// The tab opened!
timeToDoubleClick = 0;
}
}
} while(timeToDoubleClick > 500 && attempt++ <= 5);
if(attempt > 5) {
throw new Error("Could not manage to double click!");
}
}