Как вводить ключи в Selenium, не назначая его конкретному объекту? - PullRequest
0 голосов
/ 26 июня 2018

После того, как страница загружается, курсор уже находится в элементе, в который мне нужно ввести текст. Как бы я просто ввел строку / тип, фактически не находя элемент первым, так как я уже «активен» внутри него?

Ответы [ 3 ]

0 голосов
/ 26 июня 2018

Как только страница загружается, поскольку курсор уже находится в требуемом элементе для отправки последовательности символов , вы можете использовать следующее решение:

WebElement myElement = driver.switchTo().activeElement();
myElement.sendKeys("alec kendall");
0 голосов
/ 26 июня 2018

Как пишет DebanjanB, вы можете переключиться на активный элемент, но если веб-поведение изменится и курсор будет по умолчанию в другом месте, решение больше не будет работать.Лучше найти поле ввода - проверенным способом.Пример:

WebDriverWait wait5s = new WebDriverWait(driver,5);
driver.get("https://www.google.cz");

WebElement input_field = wait5s(until(ExpectedConditions.elementToBeClickable(By.id("lst-ib")));
input_field.click(); // some input fields needs to be cliked before sending keys
input_field.sendKeys("egg or chicken");

WebElement search_button = driver.findElement(By.name("btnK"));
search_button.click();
0 голосов
/ 26 июня 2018

Используйте это - WebElement currentElement = driver.switchTo().activeElement();

См. - https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/WebDriver.TargetLocator.html#activeElement--

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...