【问题标题】:HTMLUnitDriver not entering information properly?HTMLUnitDriver 没有正确输入信息?
【发布时间】:2012-09-17 20:26:25
【问题描述】:

使用 JAVA 和 SELENIUM 库:

我有一个使用 FirefoxDriver 的 web automator,到目前为止它运行良好。 我的代码如下:

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 之前,该程序设法登录到网页,但现在我被重定向到“登录失败”页面。我认为密码或用户名输入不正确。 FirefoxDriver 和 HTMLUnitDriver 之间是否存在一些我不知道的细微差别?

【问题讨论】:

  • selenium 会抛出什么样的异常?
  • Selenium 不会抛出任何异常。它只是重定向到网站的“登录失败”页面。

标签: java html selenium sendkeys


【解决方案1】:

好吧,您可能在这里遇到以下问题: 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));

    }

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

【讨论】:

  • 谢谢。 ENTER 按钮无法正常工作的任何原因?我的意思是,它正在登录,只是不正确。 :\
  • 因此,如果已登录,则似乎输入按钮处理正常。所以原因可能是在您的凭据登录/通过?您是否尝试过调试 selenium 失败的点?
  • 它不会失败。就是这样。它只是没有登录。我认为它没有正确获取凭据,但我看不到它在做什么(不像我使用 firefoxdriver 时),因此更难排除故障。
  • 尝试一步一步调试,这样你就可以看到传递给函数的实际参数(login/pass)和函数返回的结果
猜你喜欢
  • 2012-06-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-06
  • 2021-12-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多