2015-06-11 2 views
0

Моего JavaНевозможно напечатать perticular имени селена WebDriver с помощью Java

package com.ej.zob.modules; 
import java.util.List; 
import org.openqa.selenium.By; 
import org.openqa.selenium.WebElement; 

public class Manage_Branch { 
public void Execute(String IFSC) 
{ 
    LaunchApplication.driver.findElement(By.linkText("MANAGE")).click(); 
    LaunchApplication.driver.findElement(By.linkText("BRANCH")).click(); 
    LaunchApplication.driver.findElement(By.xpath("//tbody/tr/td/div[text()='"+IFSC+"']")); 
    WebElement col = LaunchApplication.driver.findElement(By.xpath("//table/tbody/tr/td[count(//table/thead/tr/th[.='BRANCH NAME']/preceding-sibling::th)+4]")); 

    if(IFSC.equalsIgnoreCase(IFSC)) 
    { 
     System.out.println(col.getText()); 

    } 
} 

}

Моего HTML

<table id="flex1" cellspacing="0" cellpadding="0" border="0"> 
<thead> 
<tr class="hDiv"> 
<th width="6%"> 
<div class="text-left field-sorting asc" rel="IFSC_CODE"> IFSC CODE </div> 
</th> 
<th width="6%"> 
<div class="text-left field-sorting " rel="BRANCH_NAME"> BRANCH NAME </div> 
</th> 
</tr> 
</thead> 
<tbody> 
<tr> 
<td class="sorted" width="6%"> 
<div class="text-left">SACS011151</div> 
</td> 
<td width="6%"> 
<div class="text-left">check</div> 
</td> 
</tr> 
<tr class="erow"> 
<td class="sorted" width="6%"> 
<div class="text-left">SACS011152</div> 
</td> 
<td width="6%"> 
<div class="text-left">Motiram</div> 
</td> 
</tr> 
<tr class="erow"> 
<td class="sorted" width="6%"> 
<div class="text-left">SACS011158</div> 
</td> 
<td width="6%"> 
<div class="text-left">TESTNAME</div> 
</td> 
</tr> 
</tbody> 
</table> 

Я хочу напечатать значение из имени столбца "Названия филиала" говорит «проверить», но когда пользователь передает значение IFSC CODE, скажите «SACS011151», тогда значение перед этим конкретным КОДОМ IFSC должно быть напечатано. Но в моем случае оно печатает значение из 8-й строки только независимо от кода IFSC, который вы используете s принимает только «TESTNAME». Для получения справки вы можете увидеть изображение выше для лучшего понимания. Я не знаю, почему это происходит. Надеюсь, ты поймешь любую помощь?

ответ

0
WebElement col = LaunchApplication.driver.findElement(By.tagName('tbody')).findElement(By.tagName('tr')).findElements(By.tagName('td'))[1] 
+0

Теперь он печатает значение IFSC VALUE «SACS011158», но мне нужны значения под столбцом «ФИНАНСОВЫЙ ИМЯ». Пользователь будет передавать значение IFSC. – Ab123

+0

@AbNimkar, только что обновил ответ, проверьте сейчас. –

+0

Нет вышеуказанной строки. Правильно. Если вы используете findElements, то для этого потребуется Список . Также я сомневаюсь в положении [1] – Ab123

0

После попробовать это:

WebElement col = LaunchApplication.driver.findElement(By.xpath("//tbody/tr[1]/td[1]/div[text()='SACS011151']")); 

if(col.equals("SACS011151")){ 
    WebElement branchNameEle = LaunchApplication.driver.findElement(By.xpath("//tbody/tr[1]/td[4]")); 
    System.out.println("BranchName: "+branchNameEle.getText()); 
} 
+0

Ну, но это не мое требование. – Ab123

+0

Тогда каково ваше требование? –

+0

пользователь будет передавать значение КОД IFSC, а значение под именем ФИНАНСИРОВАНИЯ должно быть напечатано. Если я передаю значение КОДА IFSC «SACS011151», тогда значение «НАБОР ФИНАНСИРОВАНИЯ» должно быть напечатано. см. выше изображение для ссылки. – Ab123

1

Попробуйте это: WebElement цв = LaunchApplication.driver.findElement (By.xpath ("// THEAD // ДИВ [текст() = '+" IFSC "+"] //../ следующий-родственный :: тд/дел"));

+0

это должно работать только в одном случае, если у вас есть несколько столбцов, тогда выберите соответствующий столбец, указав индекс, как $ x ('// tbody/tr/td/div [text() =' + "IFSC" + '] /. ./following-sibling::td[1]/div ') – Kavan

+0

Да, вы правы .. мы можем использовать индекс также .. :) –

Смежные вопросы