6

これらのボタンを検証するためにクリック操作を実行する必要がある以下の式を使用して、要素の列をテーブル構造からリストに保存しようとしています。

コード :

の値がありますTotal_element = 37

for(int start=0; start <= Total_element; start++)  
{  
    int startn=start+1;  
    System.out.println(start);  
    List <WebElement> Element1 = new ArrayList<WebElement>() ;

    try{  
        Element1.add(Naveen.findElement(By.xpath(".//*[@id='data_grid']/tbody/tr["+startn+"]/td[2]/a/img")));  
    }catch(Throwable t){  
        System.out.println(t);  
    }  
    System.out.println(Element1.get(start));  
    System.out.println("The element" + start + "is :"+ Element1.get(start));  
    Naveen.findElement(By.xpath(Element1.get(start).toString())).click();  
    Naveen.findElement(By.xpath(".//*[@id='action']/a/span/div")).click();  
    System.out.println("The element" + start + "is :"+ Element1);  
    Thread.sleep(5000);  
}

エラー :

リストから要素を取得しようとすると、次の出力が得られます。

[[FirefoxDriver: firefox on XP (586a8f1f-f784-4ae7-adf5-5f920dfad8e0)] -> xpath: .//*[@id='data_grid']/tbody/tr[1]/td[2]/a/img]

さらに、私の操作が失敗していると言っています。

4

2 に答える 2

1

それ以外の:

Naveen.findElement(By.xpath(Element1.get(start).toString())).click();

試す:

Element1.get(start).click();
于 2016-01-19T07:41:39.300 に答える
1

実際に何が起こっているのか、戻り値の型

   driver.findElemnt(By.xpath("xpath"));

WebElement です。上記のコードを にArrayList追加すると、WebElement が追加されます。WebElement には、

Driver Used- FirefoxDriver
Browser session value- 586a8f1f-f784-4ae7-adf5-5f920dfad8e0
locator used- xpath: .//*[@id='data_grid']/tbody/tr[1]/td[2]/a/img]

Web 要素を取得しようとすると、それらすべてが返されます。それがあなたの場合に起こっていることであり、クリックしようとするとエラーが発生します。

Xpath locatorにalone を追加するだけArrayListです。それが動作します。

これを試して

 ArrayList<String> Element1 = new ArrayList<String>();
 Element1.add(".//*[@id='data_grid']/tbody/tr["+startn+"]/td[2]/a/img");

 driver.findElement(By.xpath(Element1.get(`startn`))).click();
于 2013-02-01T04:34:01.027 に答える