Вопрос по webdriver – Убедитесь, что браузер, открытый webdriver, всегда в фокусе

10

Если окно браузера не в фокусе, все идентификации веб-драйверов на текущей странице завершаются ошибкой.

Как можно сфокусировать браузер с помощью веб-драйвера?

Какой браузер? Firefox, IE, Chrome? Aleh Douhi
Почему у экземпляра не было фокуса? Если вы пытаетесь нормально работать на компьютере, на котором выполняются тесты, то да, это не сработает, поскольку Selenium использует встроенную клавиатуру ОС и нажимает на инструкции, которые могут помешать вам. Иногда,driver.switchTo().defaultContent() (И / илиswitchTo().activeElement()) помогает - в основном на IE. Какой у вас вариант использования? Petr Janeček

Ваш Ответ

4   ответа
7
((JavascriptExecutor) webDriver).executeScript("window.focus();");

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
1

((IJavaScriptExecutor)po.WebDriver).ExecuteScript("window.focus();");
Error: User Rate Limit ExceededattentionError: User Rate Limit Exceeded
6

executeScript("window.focus();") didn't work for me in the latest Chrome (v47 на момент публикации)

Однако я нашел взлом вДругой вопрос которыйdoes работать в этой версии Chrome.

Вот общие шаги, поскольку вопрос не определяет язык API Selenium:

Show alert by executing script in browser Accept the alert

Реализация вwebdriverjsкоторый я использую

const chrome = setupChromeWebdriver(); // get your webdriver here

chrome.executeScript('alert("Focus window")'))
  .then(() => chrome.switchTo().alert().accept());
2

который открывает браузер, выполните этот фрагмент:

String window = driver.getWindowHandle();
((JavascriptExecutor) driver).executeScript("alert('Test')");
driver.switchTo().alert().accept();
driver.switchTo().window(window);

Похожие вопросы