Можно ли использовать Java selenium для создания выделенного текста с помощью мыши после ввода текста в текстовое поле? (как на картинке ниже)
Я пытался использовать «Действия» или «Робот селена» для выбора, но они, кажется, поддерживают выделение текста только с клавиатуры, а я должен автоматизировать тестовые случаи для приложения, которое требует выделения текста только мышью.
Я думаю о том, чтобы найти положение курсора в текстовом поле, а затем используйте Robot mouseMove, чтобы сделать выбор. Но все еще застрял в поиске позиции курсора.
//go to start point of the selection
Robot robot = new Robot();
Toolkit.getDefaultToolkit().setLockingKeyState(KeyEvent.VK_NUM_LOCK, false);
robot.keyPress(KeyEvent.VK_HOME);
robot.delay(500);
for (int num = 0; num < Integer.parseInt(startPoint); num++) {
robot.keyPress(KeyEvent.VK_RIGHT);
robot.delay(500);
robot.keyRelease(KeyEvent.VK_RIGHT);
}
//find cursor position but this is for mouse position only, not position of my expected cursor in the text field
PointerInfo a = MouseInfo.getPointerInfo();
Point b = a.getLocation();
int x = (int) b.getX();
int y = (int) b.getY();
System.out.println(x + "," + y);
wait(3);
for (int selection = 0; selection < text.length(); selection++) {
robot.keyPress(KeyEvent.VK_RIGHT);
robot.delay(500);
robot.keyRelease(KeyEvent.VK_RIGHT);
}
PointerInfo c = MouseInfo.getPointerInfo();
Point d = c.getLocation();
int w = (int) d.getX();
int z = (int) d.getY();
System.out.println(w + "," + z);
// move mouse point from the start point to end point of selection
robot.mouseMove(x + 12, y);
robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
robot.delay(500);
robot.mouseMove(w - 12, z);
robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
robot.delay(500);
Есть предложения?