如何在Selenium中输入键而不将其分配给特定对象?

时间:2018-06-26 05:30:31

标签: java selenium selenium-webdriver

在页面加载后,光标已经在元素中,我需要在其中输入文本。由于我已经在其中“活动”了,我该如何直接输入字符串/类型而不必首先找到该元素?

3 个答案:

答案 0 :(得分:1)

一旦页面加载完毕(光标已位于所需元素中即可发送字符序列),您可以使用以下解决方案:

WebElement myElement = driver.switchTo().activeElement();
myElement.sendKeys("alec kendall");

答案 1 :(得分:0)

使用此-WebElement currentElement = driver.switchTo().activeElement();

请参阅-https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/WebDriver.TargetLocator.html#activeElement--

答案 2 :(得分:0)

随着DebanjanB书写,您可以切换到活动元素,但是如果Web行为发生变化,并且默认情况下光标将在其他位置,则该解决方案将无法继续工作。最好找到输入字段-经过验证的方式。一个例子:

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();