2017-11-09 3 views
0

Siebel Webアプリケーションには、約200,000のユーザーレコードが含まれる表がありますが、一度に10レコードしか表示されません。 1つの特定のユーザーIDを取得して同じテーブル構造に表示する検索機能があります。だから、1つのユーザーIDを検索すると、1つのレコードしか表示されません。問題は、xpathを使用して検索後に表示される単一のレコードの列を見つけ、getText()でその列の値を取得しようとすると、正しい値が得られないということです。代わりに私は元のテーブルのデータから値を取得していますが、現在は表示されません。ウェブテーブルで表示可能な行のデータを使用するセレンのwebdriver

私のコードは、TDのデータを取得するには、[3]以下の通りである:

​​

は、事前に、感謝を助けてください。

webtableのHTMLユーザID =「UX22983221」の検索は、以下になった後:

<div class="ui-jqgrid-bdiv" style="height: 339px; width: 1339px;"> 
<div style="position:relative;"> 
<div></div> 
<table id="s_1_l" class="ui-jqgrid-btable" border="0" cellspacing="0" cellpadding="0" tabindex="0" role="grid" aria-multiselectable="true" aria-labelledby="" style="width: 1339px;" summary="Employee List" datatable="1"> 
<tbody> 
<tr class="jqgfirstrow" style="height:auto" role="row"> 
<tr id="1" class="ui-widget-content jqgrow ui-row-ltr ui-state-highlight" tabindex="-1" role="row" style="height: 32px;" aria-selected="true"> 
<td aria-describedby="s_1_l_cb" style="text-align:center;display:none;" role="gridcell"> 
<td id="1_s_1_l_Last_N" title="" style="text-align:left;" role="gridcell" aria-labelledby="s_1_l_Last_N s_1_l_altLink"> 
<td id="1_s_1_l_First_N" title="Man--Product Admin" style="text-align:left;" role="gridcell" aria-labelledby="s_1_l_First_N">Man--Product Admin</td> 
<td id="1_s_1_l_Job_ti" style="text-align:left;" role="gridcell" title="" aria-labelledby="s_1_l_Job_Ti"> </td> 
<td id="1_s_1_l_Log_Name" title="UX22983221" style="text-align:left;" role="gridcell" aria-labelledby="s_1_l_Log_Name">UX22983221</td> 
<td id="1_s_1_l_Resp" title=" Product Adm" style="text-align:left;" role="gridcell" aria-labelledby="s_1_l_Resp s_1_l_altmvg"> Product Adm</td> 
<td id="1_s_1_l_Po" title=" CAN SE_2D14403" style="text-align:left;" role="gridcell" aria-labelledby="s_1_l_Po s_1_l_altmvg"> CAN SE_2D14403</td> 
<td id="1_s_1_l_Inte_User_Flag" title="Unchecked" style="text-align:center;" role="gridcell" aria-labelledby="s_1_l_Inte_User_Flag s_1_l_altCheckBox"> 
</tr> 
</tbody> 
</table> 
+0

元のテーブルを表示できますか?それはDOMに存在しますか?あなたの期待するテキストは何ですか?実際のテキストは何ですか? – Buaban

+0

ユーザID = "UX22983221"の検索を検索すると、 'Man - Product Admin'というテキストを抽出しようとしていますか?より良い分析のために、HTMLフォーマッタを使用して、実際の 'HTML'のように質問領域の' HTML'をフォーマットしてください。 – DebanjanB

答えて

0

まず、絶対たxPath対相対差を知っています。すべてのユーザーに共通の共通xPathを使用して要素を取得しようとしています。代わりに相対xPathを使用してください。

絶対xPath:ルート要素からターゲット要素までの完全なパスを使用します。

相対xPath:単に要素を参照するだけです。

あなたのXPathはJavaファイル内".//*[@id='s_1_l']/tbody/tr[@class='jqgfirstrow']/td[contains(text(),'%s')]"

、ここ

String cellValue = driver.findElement(By.xpath(String.format(urXpath, userID))).getText(); 

でなければなりません、あなただけのユーザーIDを交換する必要があるとあなたはそのtd要素を取得します。

+0

Sanjay Bhimaniありがとうございました。私は答えを得た。私はあなたの答えにタイプミスをしたと思います。そこで、あなたの提案したxpathのクラス名を 'ui-widget-content jqgrow ui-row-ltr ui-state-highlight'に置き換えました。 – Sanjay

+0

@Sanjay喜んで助けてください。 –

関連する問題