Selify错误:sendKeys命令不能正常工作,有谁能解决这个问题?

qxgroojn  于 2022-10-15  发布在  Eclipse
关注(0)|答案(2)|浏览(205)

我正试图自动化一个网站,询问他的详细信息的人。在申请者姓名栏中,我们应该填写全名。因此,**name**包含名字和姓氏,名字和姓氏之间必须有空格。但是,当我尝试使用sendKeys命令发送名称时,空格(即姓氏)之后的字符没有被发送,而是出现了许多空格。我想不出这个问题。拜托了,任何帮助都将不胜感激。

以下是我用eclipse IDE编写的代码:

package automation;

import java.time.Duration;

import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;

public class residence {

public static void main(String[] args) throws InterruptedException {
    // TODO Auto-generated method stub
    System.setProperty("webdriver.chrome.driver", ".\\lib\\chromedriver.exe");
    WebDriver driver = new ChromeDriver();
    driver.manage().window().maximize();
    /*Store the current window handle */
    String parent_handle = driver.getWindowHandle();
    driver.get("https://serviceonline.bihar.gov.in/resources/homePage/10/loginEnglish.htm");
    driver.findElement(By.xpath("//label[contains(text(),'General')]")).click();
    driver.findElement(By.xpath(("//p[contains(text(),'Residential')]"))).click();
    driver.findElement(By.xpath(("//div[@id='collapseOneOne']/div/p/a"))).click();

    for(String winHandle:driver.getWindowHandles()){
        if(!parent_handle.equals(winHandle))
            driver.switchTo().window(winHandle);
    }

    /* Write Gender accordingly.Default is Male(M).(F) and (T)*/
    char gender='M';
    WebDriverWait wait=new WebDriverWait(driver,Duration.ofSeconds(30));
    wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//label[@for='17290_1']/input")));
    if(gender=='M')
    {
        driver.findElement(By.xpath("//input[@id='17290_1']")).click();
    }
    else if(gender=='F')
    {
        driver.findElement(By.xpath("//input[@id='17290_2']")).click();
    }
    else
    {
        driver.findElement(By.xpath("//input[@id='17290_3']")).click();
    }

    WebElement obj=driver.findElement(By.xpath("//input[@name='78250']"));

    /* I have also tried obj.sendKeys("Sumit Kumar") , this is also not working*/

    obj.clear();
    obj.sendKeys("Sumit",Keys.SPACE,"Kumar");
    obj = driver.findElement(By.xpath("//input[@name='17287']"));
    obj.clear();
    obj.sendKeys("Name in Hindi with space ");
}  

}
  • 以下是我的输出截图:*

Error image
注意:-请注意,它在相邻的文本框中按预期工作。

j7dteeu8

j7dteeu81#

更改您发送的按键命令如下所示,当输入我测试过的姓名时,它能够输入姓名,当页面右侧的文本框将输入的姓名转换为印地语时,焦点会有短暂的滞后,下面这样发送解决了问题

obj.sendKeys("Sumit");
        obj.sendKeys(" ");
        obj.sendKeys("Kumar");

bpsygsoo

bpsygsoo2#

我看不出有必要把绳子分开。您可以发送一个字符串;

obj.sendKeys("Sumit Kumar");

希望这个能帮上忙!

相关问题