0

シナリオ:

画面にさまざまな画像が貼り付けられるギャラリーページがあります。画像をクリックすると、次と前のボタンでファンシーボックスが開き、ユーザーは次と前に移動してファンシーボックス内のすべての画像を表示できます

問題


テスト実行中に選択した画像上でマウス ポインターを物理的に移動するか、テスト実行前に選択した画像が表示される画面にマウス ポインターを設定するまで、ファンシー ボックスが開かない

 WebElement el = driver.findElement(By.xpath("//div[2]/p/a/span"));
    Actions builder = new Actions(driver);
    builder.moveToElement(el).click();
    builder.perform();
    driver.manage().timeouts().implicitlyWait(2000, TimeUnit.SECONDS);
    
    
    // following code add to move mouse pointer physically but its also not working
    
    Point coordinates = driver.findElement(By.xpath("//div[2]/p/a/span")).getLocation();
    Robot robot = new Robot();
    robot.mouseMove(coordinates.getX(),coordinates.getY()+120);
4

1 に答える 1

0

Webdriver は、を使用せずに要素をクリックできますActions。次のスニペットが機能するかどうか試してください。

WebElement el = driver.findElement(By.xpath("//div[2]/p/a/span"));
el.click();

そうでない場合は、xpath を一度確認し、発生したエラーを投稿してください。

また、クリック アクションを実行した後に暗黙の待機を追加しました。これにより、クリック コマンド自体の待機が発生することはありません。暗黙的な待機は変数の有効期間に関連付けられておりdriver、理想的にdriverはインスタンス化されたときに追加する必要があります。

アクションごとにカスタマイズされた待機が必要な場合は、 を使用してみてくださいExplicit Waits

于 2013-02-14T07:03:35.367 に答える