2

WebDriver を使用してフォームを送信するプログラムを Java で作成しています。クラス名、css セレクター、id、リンク テキスト、名前、部分的なリンク テキスト、タグ名、または xpath を使用して要素を選択できるようにするメソッド findElement があります。

選択したいボタンは次のとおりです。

<div class="editable" style = "width:82px;float:right;margin-right:10px;">
<a href="#" onclick="$('order_form').submit(); return false;" class="btn">
    <img class="btn" src="/myhuds/images/rd_images/btn_place_order.gif" alt="Place Order" width="82" height="17" border="0">
</a>
</div>

ページに複数のボタンがあるため、クラス名を使用できません。このボタンを選択するために findElement メソッドを使用する方法についてのアイデアはありますか?

ありがとう!

4

6 に答える 6

0

これを使ってみてください。XPath を取得するためのブラウザ プラグインを追加できます。

     driver.findElement(By.xpath("Your XPath"));
于 2012-12-05T23:43:06.020 に答える
0

特定のケースでは、XPath を使用して img @alt 属性に基づいて検索できます

driver.findElement(By.xpath("//img[@alt='Place Order']")).click();
于 2012-12-06T08:41:42.263 に答える
0

ボタンにIDを追加して(ページ内のすべてのボタンに)、次のように見つけることができます-

driver.findElement(By.id("Your ID"));
于 2012-12-06T07:16:27.513 に答える
0

ステップ1:

利用可能な DOM 構造を使用して、"Place Order"
画像の CSS セレクターを生成します

css=a[onclick*='order_form'] > img[src*='btn_place_order.gif']

次に、「注文する」画像をクリックします。

driver.findElement(By.cssSelector("a[onclick*='order_form'] > img[src*='btn_place_order.gif']")).click();

于 2014-04-03T07:07:43.340 に答える
0

を使用しCSS selectorsます。ここで簡単な説明を見つけることができますW3とここでいくつかの例:.

したがって、使用してみてくださいdriver.findElement(By.cssSelector(...));

于 2012-12-06T07:56:05.287 に答える
0

次の例が役立ちます。

HTML ファイル:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

<html>

<head>
    <title>Login Page</title>
</head>

<body>
    <h1 class="page-header">Login</h1>
    <ul class="errors"></ul>
    <div>
        <form class="login-form" action="checkLogin.html" method="post">
            <label for="username-field">Username1</label>
            <input type="text" name="username" class="username-field" />
            <br />
            <label for="password-field">Password1</label>
            <input type="password" name="password" class="password-field" />
            <br />
            <input type="submit" value="Submit" />
        </form>
    </div>
    <div>
        <form class="login-form" action="checkLogin.html" method="post">
            <label for="username-field">Username2</label>
            <input type="text" name="username" class="username-field" />
            <br />
            <label for="password-field">Password2</label>
            <input type="password" name="password" class="password-field" />
            <br />
            <input type="submit" value="Submit" />
        </form>
    </div>
</body>

</html>

Password1 の入力フィールドを見つけるには:

WebElement passwordField1: driver.findElement(By.cssSelector("div:nth-child(3) .password-field"));

Password2 の入力フィールドを見つけるには:

WebElement passwordField2: driver.findElement(By.cssSelector("div:nth-child(4) .password-field"));

nth-child() セレクターの詳細については、こちらをご覧ください。

于 2017-02-15T09:23:04.337 に答える