2

私の要件は、Image Hover が機能しているか、Webdriver を使用していないかを確認することです。以下のように画像にマウスオーバーすると、その画像タグのタイトル値が変化します。

普通:
[img title="ASPIRIN" "src="http://img.med.com/pi/LNK01570.jpg" class="preview">

その画像にマウスオーバーした場合:
[img title="" "src="http://img.med.com/pi/LNK01570.jpg" class="preview">

ここでは、タイトルの値を比較して、画像のホバーを確認しようとしています。そのためのコードを作成しましたが、Grid を使用せずにスクリプトを実行すると問題なく動作します。しかし、Grid の mouseOver を使用すると正しく動作しません。イメージ タグの値は変更されていません。グリッドの使用に問題はありますか? 私はFF17とSelenium 2.28.0とSelenium 2.25.0を使用しています。

私のコード:

String strVal1 = driver.findElement(By.xpath("//table[@id='ref_priceimgtable']/tbody/tr[12]/td[4]/img")).getAttribute("title");
        System.out.println(strVal1);
        WebElement element = driver.findElement(By.xpath("//table[@id='ref_priceimgtable']/tbody/tr[12]/td[4]/img"));
        Locatable hoverItem = (Locatable) element;
        hoverItem.getLocationOnScreenOnceScrolledIntoView();
        Mouse mouse = ((HasInputDevices) driver).getMouse(); 
        mouse.mouseMove(hoverItem.getCoordinates());
        String strVal2 = driver.findElement(By.xpath("//table[@id='ref_priceimgtable']/tbody/tr[12]/td[4]/img")).getAttribute("title");
        System.out.println(strVal1+"Null Value");

上記のコードstrVal1では、 とstrVal2は異なる必要があります。

4

1 に答える 1

1

 String strVal1 =driver.findElement(By.xpath("//table[@id='ref_priceimgtable']/tbody/tr[12]/td[4]/img")).getAttribute("title");

System.out.println(strVal1); WebElement element = driver.findElement(By.xpath("//table[@id='ref_priceimgtable']/tbody/tr[12]/td[4]/img")); Actions mouseOver = new Actions(driver); mouseOver .moveToElement(element).build().perform(); String strVal2 = driver.findElement(By.xpath("//table[@id='ref_priceimgtable']/tbody/tr[12]/td[4]/img")).getAttribute("title"); System.out.println(strVal1+"Null Value");

マウスオーバーでこの方法を試しましたか? この方法を試す場合は、firefox プロファイルのメソッド「profile.setEnableNativeEvents(true);」を呼び出していますか? ? . このメソッドは、selenium でマウスオーバーを処理するために firefox に必要です。

Plsはこれを試してみてください。これはグリッドでもうまくいくと思います。

于 2013-02-11T07:02:53.700 に答える