Selenium WebDriver и Java Robot Class

1

Я хочу использовать класс Java Robot, чтобы переместить мышь по ссылке, чтобы динамически создавать больше контента. Для веб-взаимодействий я использую Selenium WebDriver.

    Point coordinates = driver.findElement(By.xpath("//li[@id='1234']/a")).getLocation();
    Robot robot;
    try {
        robot = new Robot();
        robot.mouseMove(coordinates.getX(),coordinates.getY()+120);
    } catch (AWTException e1) {
        e1.printStackTrace();
    }

Selenium выдает ошибку для функции getLocation:

Exception in thread "main" org.openqa.selenium.WebDriverException: Cannot determine size of element

Кто-нибудь знает, что я делаю неправильно?

Теги:
selenium
selenium-webdriver
awtrobot

3 ответа

1

действие мыши, которое вы можете достичь (класс действий), не используя Robot.

new Actions(driver).moveToElement(driver.findElement(By.xpath("//li[@id='1234']/a"))).perform();

включить в свой файл описание импорта.

import org.openqa.selenium.interactions.Actions;
  • 1
    Извините, но мне нужен робот, потому что в моем случае действия не работают.
1

Если вы просто хотите сделать движение мыши на странице, взаимодействие Selenium может помочь вам сделать то же самое.

Вот пример кода для вас

WebElement myLink = driver.findElement(By.xpath("//li[@id='1234']/a"));

Actions act = new Actions(driver);
act.moveToElement(myLink).build().perform();

// if you want to click on the link : 
act.click(myLink).build().perform();

// if you want to move to the element and then click onthe link : 
act.moveToElement(myLink).click(myLink).build().perform();

// or can be done in two different steps like this : 
act = act.moveToElement(myLink);
act.click(myLink).build().perform()

Для этого мы должны импортировать org.openqa.selenium.interactions.Actions;

Надеюсь, это решает вашу проблему.

0

Я попробовал это и, похоже, работает для меня. пожалуйста, проверьте

Point p = webele.getLocation();
int x = p.getX();
int y = p.getY();
Dimension d = webele.getSize();
int h = d.getHeight();
int w = d.getWidth();
Robot r = new Robot();
r.mouseMove(x + (w/2), y+(h/2) +80);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню