Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

[Resolved] Выделение текста с помощью Actions sendKeys на mac os


(Наталья Охлопкова) #1

Добрый день! Столкнулась с проблемой выделения всего текста в iframe на mac.
Для windows отлично работает код:

driver.switchTo().frame(iframe);
WebElement textElement = driver.findElement(By.cssSelector(“body”));
Actions action = new Actions(driver);
action.click(textElement).sendKeys(Keys.chord(Keys.CONTROL, “a”)).perform();
driver.switchTo().defaultContent();

Для mac пыталась заменить Keys.CONTROL на Keys.COMMAND, но это не работает.

Подскажите, как можно выделить текст ?
Заранее спасибо


(Andrew Zakordonets) #2

Судя по этому посту вебдрайвер не поддерживает нативные кнопки у мака. Но ты можешь попробовать взять айдишку кнопки CMD вот отсюда - > COMMAND = u'\ue03d'
Вот еще один ответ в пользу того что нажать на маке на эту кнопку не так просто - link

Если айдишка кнопки не сработает, тогда подумай о том что бы скопировать весь текст джаваскриптом.


(Наталья Охлопкова) #3

COMMAND через юникод тоже не работает.
В итоге получился такой разврат с шифтом:
action.keyDown(Keys.getKeyFromUnicode(’\ue008’)).sendKeys(Keys.ARROW_DOWN, Keys.ARROW_DOWN, Keys.ARROW_DOWN).keyUp(Keys.getKeyFromUnicode(’\ue008’)).build().perform();


(Наталья Охлопкова) #4

вот получше вариант (только сначала надо курсор в начало текста поставить):
action.keyDown(Keys.getKeyFromUnicode(’\ue008’))
.sendKeys(Keys.PAGE_DOWN)
.keyUp(Keys.getKeyFromUnicode(’\ue008’)).build().perform();