Движение Java Selenium Mouse в Decentraland
Я пытаюсь автоматизировать процесс переезда в Decentraland (метавселенная https://decentraland.org/). После того, как я автоматизировал процесс регистрации и все такое, я прыгаю в землю, но при использовании
actions.moveToElement(element, x, y);
, ошибка не отображается, но по какой-то причине экран Decentraland не перемещается.
Вот код
package com.example;
import org.openqa.selenium.By;
import org.openqa.selenium.Dimension;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.interactions.Actions;
import java.util.concurrent.TimeUnit;
/**
* Hello world!
*/
public final class App {
/**
* Says hello to the world.
* @param args The arguments of the program.
*/
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", "chromedriver");
WebDriver driver = new ChromeDriver();
driver.get("https://play.decentraland.org/?position=45%2C19&realm=fenrir-amber");
Dimension targetSize = new Dimension(800, 600);
driver.manage().window().setSize(targetSize);
sleep(1);
driver.findElement(By.xpath("//*[@id=\"eth-login-confirmation-wrapper\"]/button[2]")).click();
sleep(30);
// avatar section
Actions actions = new Actions(driver);
WebElement element = driver.findElement(By.xpath("//*[@id=\"#canvas\"]"));
sleep(5);
actions.moveToElement(element, 333, 210).click().perform();
// create profile section
actions = new Actions(driver);
element = driver.findElement(By.xpath("//*[@id=\"#canvas\"]"));
sleep(5);
actions.moveToElement(element, 130, -53).click().perform();
new Actions(driver).sendKeys("a").perform();
actions.moveToElement(element, 138, 103).click().perform();
// tos section
actions = new Actions(driver);
element = driver.findElement(By.xpath("//*[@id=\"#canvas\"]"));
sleep(5);
actions.moveToElement(element, 283, -99).clickAndHold().perform();
sleep(5);
actions.moveToElement(element, 283, 58).release().perform();
sleep(5);
actions.moveToElement(element, 140, 97).click().perform();
// click got it button in land
// 0, 166
actions = new Actions(driver);
element = driver.findElement(By.xpath("//*[@id=\"#canvas\"]"));
sleep(5);
actions.moveToElement(element, 0, 166).click().perform();
// pan shot
actions = new Actions(driver);
element = driver.findElement(By.xpath("//*[@id=\"#canvas\"]"));
sleep(5);
actions.moveToElement(element).click().perform();
sleep(5);
actions.moveToElement(element).doubleClick().perform();
sleep(5);
for (int i=1; i<5; i++) {
actions.moveToElement(element, 0, 10 * i).click().perform();
}
}
public static void sleep(int seconds) {
try {
internalSleep(seconds);
} catch (Exception e) {
e.printStackTrace();
}
}
public static void internalSleep(int seconds) throws InterruptedException {
TimeUnit.SECONDS.sleep(seconds);
Thread.sleep((long)seconds * 1000);
}
public static void print(String message) {
System.out.println(message);
}
}
Любая помощь будет принята с благодарностью. Спасибо.