HTMLUnitDriver没有正确输入信息?

时间:2012-09-15 23:23:21

标签: java html selenium sendkeys

使用JAVA和SELENIUM LIBRARY:

我有一个网络自动装置,直到现在使用FirefoxDriver完美无缺。 我的代码如下:

System.out.println("Creating new web driver");
WebDriver driver = new HtmlUnitDriver(BrowserVersion.FIREFOX_3_6);
System.out.println("Parsing CARD OFFICE PAGE\nAccessing webpage");
driver.get(myWebsite);

System.out.println("Setting login credentials");
WebElement id = driver.findElement(By.id("quickloginphrase"));
WebElement pw = driver.findElement(By.id("quickpassword"));

id.sendKeys(username);
pw.sendKeys(password);

System.out.println("Submitting credentials");
System.out.println(driver.getCurrentUrl());
pw.sendKeys(Keys.ENTER);
System.out.println("Credentials submitted");

在我开始使用HTMLUnitDriver之前,程序设法登录到网页,但现在我被重定向到“登录失败”页面。我认为pw或用户名输入不正确。 FirefoxDriver和HTMLUnitDriver之间是否存在一些我不知道的细微差别?

1 个答案:

答案 0 :(得分:0)

好吧,你可能会遇到以下问题: 1)

pw.sendKeys(Keys.ENTER);

输入按钮处理程序未正确处理 2)

id.sendKeys(username);
pw.sendKeys(password);

您发送的是不正确的登录通行证  可能的解决方案:尝试使用

按“输入”键按下登录按钮
driver.findElement(By.xpath(//....blablabla)).click();

所以我提供了一些代码,用于正确登录和验证成功登录:

public void doAdminLogin() throws IOException {
        String curTitle=driver.getTitle();
        locatorFindingHandling("login.logininput", "login.admin.login");

        locatorFindingHandling("login.passinput", "login.admin.pass");

        locatorFindingHandling("login.loginbutton");
        driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);


        String newTitle=driver.getTitle();
        Assert.assertFalse(curTitle.equals(newTitle));

    }


public void locatorFindingHandling(String key, String key1) throws IOException {

        driver.findElement(By.xpath(propertyKeysLoader(key))).sendKeys(propertyKeysLoader(key1));

    }

正如我上面提到的,尝试调查解决方法。希望这适合你)