使用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之间是否存在一些我不知道的细微差别?
答案 0 :(得分:0)
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));
}
正如我上面提到的,尝试调查解决方法。希望这适合你)