Боюсь, вы не можете перемещаться по контекстному меню с помощью ключевых команд для любого элемента на странице.
Из кода кажется, что вы хотите открыть URL-адрес ссылки вновое окно.Вы также можете сделать это, открыв новое окно с URL-адресом элемента ссылки.
Существует два основных способа: Javascript и составное действие с использованием клавиш-модификаторов при нажатии на ссылку.
Обратите внимание, что оба подхода не могут обрабатывать javascript:
URL-адреса или URL-адреса только для фрагментов с прикрепленными к ним обработчиками событий клика.
Javascript
При этом используется контекст исполнителя Javascriptзапустить window.open()
с URL-адресом, извлеченным из элемента ссылки.
// Execute a Javascript snippet
((JavascriptExecutor) d).executeScript("return window.open('"+ addoftask.getAttribute("href") +"', 'newtask');");
// Selenium does not automatically switch to new windows
d.switchTo().window("newtask");
Подробнее о JavascriptExecutor
можно найти в SeleniumHQ.
Составное действие
Этот подход использует действие, нажимая клавишу модификатора CTRL
, чтобы открыть ссылку в новой вкладке.Далее он использует getWindowHandles()
для получения набора открытых окон (и вкладок) и переключается на второе.
// Click with CTRL as modifier for new window.
a.keyDown(Keys.CONTROL).click(addoftask).perform();
// Switch to the second window
d.switchTo().window((String) d.getWindowHandles().toArray()[1]);