Прошу помочь мне разобраться как Selenium переключает язык в браузере (на примере Chrome). Я работаю через удаленные терминал на Linux в режиме headless (без запуска самого браузера при тестах).
Я написал простой скрипт (представлен ниже), который пытается задать язык es для браузера Chrome и с этой настройкой идет на www.google.com.
После этого я проверяю текущий язык страницы через JavaScript и через атрибут lang тега html.
В итоге, я ожидаю, что получу результат es, а получаю от JavaScript — en-US, а атрибут lang выдает ru
Selenium.webdriver: 4.5.0
browserVersion: 107.0.5304.87
chromedriverVersion: 107.0.5304.87
-----------
URL: https://www.google.com/
Title: Google
My lang: es
JS lang: en-US
HTML lang: ru
Автоматизирую приложение на Java + Selenium и у меня на одном из этапов кейса присутствует электронная подпись. Это виндовое приложение.
В момент, когда кейс доходит до вызова этого приложения, появляется следующая форма( даже не знаю как правильно ее назвать)
Без понятия как ее автоматически выбирать в браузере.
Пробовал следующие варианты:
1. Нажать клавиши Left и Enter, чтобы перейти на кнопку "Открыть приложение" и выбрать, но кейс падает т.к. надо привязываться к какому-то элементу, а элемент перекрыт пытающейся открыться подписью
public OtherBankPage pressKeys() {
sendMoneyButton.sendKeys(Keys.LEFT);
sendMoneyButton.sendKeys(Keys.ENTER);
return new OtherBankPage(driver);
}
2. Пробовал через Actions, но тщетно. Тест не падает, но всплывающее окно не реагирует.
public OtherBankPage pressKeys() throws InterruptedException {
Thread.sleep(3000); //поставил ожидания, т.к думал что может кнопки не успевают нажаться
Actions actions = new Actions(driver);
actions.sendKeys(Keys.LEFT);
Thread.sleep(1000);
actions.sendKeys(Keys.ENTER).build().perform();
return new OtherBankPage(driver);
}
Как закрыть это окно? Я подозреваю, что это можно сделать через ChromeOptions, в эту сторону тоже много что перепробовал, включая разные настройки, типа