0

JAVA と SELENIUM LIBRARY の使用:

私は、FirefoxDriver を使用して、これまで問題なく動作していた Web 自動化ツールを持っています。私のコードは次のとおりです。

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 の使用を開始する前は、プログラムは Web ページにログインできていましたが、現在は「ログインに失敗しました」ページにリダイレクトされます。pw またはユーザー名が正しく入力されていないと思います。私が気付いていない FirefoxDriver と HTMLUnitDriver の間に微妙な違いはありますか?

4

1 に答える 1

0

ここで次の問題に遭遇する可能性があります: 1)

pw.sendKeys(Keys.ENTER);

Enter ボタン ハンドラーが適切に処理されない 2)

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

不適切なログイン パスを送信している可能性のある解決策: を使用して「Enter」キーを押すのではなく、ログイン ボタンを押してみてください。

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

    }

上で述べたように、回避策を調査してみてください。これがうまくいくことを願っています)

于 2012-09-17T12:26:25.980 に答える