2016-12-30 8 views
1

私のコードは以下の通りです。誰かがより良い方法を提案できますか?セレンのwebdriverのダイナミックテーブルからレコードを見つけてクリックする方法

WebElement tasktable = driver.findElement(By.xpath( "/ html/body/div [2]/div [2]/div/div [3]/div/div [2] div/div/div/div/div/div/div/div [3]/div/div [2]/div/div/div/div

List<WebElement> rows=tasktable.findElements(By.tagName("tr")); 

System.out.println("Number of rows:"+rows.size()); 
String sColValue="Test1"; 
//String sRowValue="Status"; 
System.out.println("Searching for : "+ sColValue); 
for(int rnum=1;rnum<=rows.size();rnum++) 

    { 

String sValue = null; 
String rValue=null; 
sValue = driver.findElement(By.xpath("html/body/div[2]/div[2]/div/div[3]/div/div[3]/div/div[2]/div/div[3]/div/div[2]/div/div[3]/div/div[3]/div/div[2]/div/div/table/tbody/tr["+rnum+"]/td[2]")).getText(); 
Thread.sleep(3000); 
System.out.println("Name:"+ sValue);  
if(sValue.equalsIgnoreCase(sColValue)) 

    { 
    System.out.println("Found : "+ sValue); 
    rValue = driver.findElement(By.xpath("html/body/div[2]/div[2]/div/div[3]/div/div[3]/div/div[2]/div/div[3]/div/div[2]/div/div[3]/div/div[3]/div/div[2]/div/div/table/tbody/tr["+rnum+"]/td[2]")).getText(); 
    System.out.println("Status:"+ rValue); 
    Actions action= new Actions(driver); 
    action.moveToElement(driver.findElement(By.xpath("html/body/div[2]/div[2]/div/div[3]/div/div[3]/div/div[2]/div/div[3]/div/div[2]/div/div[3]/div/div[3]/div/div[2]/div/div/table/tbody/tr["+rnum+"]/td[2]"))).doubleClick().build().perform(); 
    new Actions(driver).doubleClick(driver.findElement(By.xpath("html/body/div[2]/div[2]/div/div[3]/div/div[3]/div/div[2]/div/div[3]/div/div[2]/div/div[3]/div/div[3]/div/div[2]/div/div/table/tbody/tr["+rnum+"]/td[2]"))).perform(); 
    Thread.sleep(3000); 
    break; 
    } 
else { 
    System.out.println("Name:"+ sColValue+ "is not found"); 
} 
+0

あなたは絶対 'XPath'を使用しています。これは良い考えではありません。相対的な 'XPath'を得るために、ターゲット要素の' HTML'を表示してください:)他の柔軟なセレクタ。また、これをチェックする必要がありますhttp://www.w3schools.com/xml/xpath_intro.asp – Andersson

+0

以下は、HTML – Alka

+0

Referral Approved
は、テーブルの行の1つです – Alka

答えて

0

XPath以下のコメント要素の使用で提供見つけるには:

//div[text()="Referral Approved"] 
+0

コードは各行の値をチェックする必要があります値が一致したときにテーブルを選択してレコードを選択する – Alka

関連する問題