0

サイトを自動化してflipkartいます。私の目的は、to loginto site とlogoutfrom site です。

ログインに成功しましたが、ログアウト リンクがサブメニュー (マウスオーバー) の下にあるため、ログアウトできません。

スクリーンショットを添付します。

Actionsclass やを使用するなど、考えられるすべてのシナリオを試しjavascriptexecutorました。

javascriptexecutorサブメニューに手動でカーソルを置いた場合にのみ、それを使用すると正常に機能します。そうしないと、エラーがスローされます。

サブメニューとブラウザ コンソールの問題を示す画像

4

1 に答える 1

0

これを機能させるのに問題はありませんでした。

これは、 getting-started-with-selenium フレームワークを使用したスクリプトです。

@Config(url="http://flipkart.com", browser=Browser.FIREFOX)
public class TestFlikPart extends AutomationTest {
    @Test
    public void testLoginLogout() {
        String username = "<username>";
        String password = "<password>";

        click(By.cssSelector("a[href*='/login']"))
        .setText(By.cssSelector("input[name='email']"), username)
        .setText(By.cssSelector("input[name='password']"), password)
        .click(By.cssSelector("input[type='submit'][value='Login']"))

        .validatePresent(By.cssSelector("li.greeting-link > a"))

        .hoverOver(By.cssSelector("li.greeting-link > a"))

        .click(By.cssSelector("ul.account-dropdown a[href*='/logout']"))

        // should be logged out now.
        .validatePresent(By.cssSelector("a[href*='/login']"));
    }
}

私は MrTi が正しいと思います.perform()。アクションを実行するのを忘れている可能性があります。メソッドの詳細な説明hoverOver()、これはそのメソッドに含まれるものです-

actions.moveToElement(driver.findElement(by)).perform();
于 2013-10-30T14:55:47.513 に答える