diff --git a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testBrainAttribute.xml b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testBrainAttribute.xml
index f3a69990bdb20c47aafc55c21242831fc811fb7b..700a1ed68fc321662b371f1c9805ba822536e245 100644
--- a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testBrainAttribute.xml
+++ b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testBrainAttribute.xml
@@ -2,10 +2,7 @@
 <ZopeData>
   <record id="1" aka="AAAAAAAAAAE=">
     <pickle>
-      <tuple>
-        <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
-        <tuple/>
-      </tuple>
+      <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
     </pickle>
     <pickle>
       <dictionary>
@@ -88,13 +85,13 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//*[@id="listbox_data_line_0"]//a[not(@title)][1]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]//a[not(@title)][1]</td>\n
   <td>0</td>\n
 </tr>\n
 <tal:block tal:condition="python: context.TestTool_getSkinName()!=\'Mobile\'">\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[3]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[3]</td>\n
   <td>Foo Title 0</td>\n
 </tr>\n
 </tal:block>\n
diff --git a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testComplexDomainTree.xml b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testComplexDomainTree.xml
index 9d520d6754d7dffb9c31d1c2d1c5347b946c59d5..7d326e96b9b8631c5559129be7195b42cc06a71d 100644
--- a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testComplexDomainTree.xml
+++ b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testComplexDomainTree.xml
@@ -2,10 +2,7 @@
 <ZopeData>
   <record id="1" aka="AAAAAAAAAAE=">
     <pickle>
-      <tuple>
-        <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
-        <tuple/>
-      </tuple>
+      <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
     </pickle>
     <pickle>
       <dictionary>
@@ -97,7 +94,7 @@
 </tr>\n
 <tr>\n
   <td>clickAndWait</td>\n
-  <td>id=listbox_domain_tree_mode</td>\n
+  <td>//input[@class="listbox-tree-domain-tree-mode"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
@@ -107,38 +104,38 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[1]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[1]//a[@class="tree-closed"]</td>\n
   <td>a</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[2]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[2]//a[@class="tree-closed"]</td>\n
   <td>b</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_record_number</td>\n
-  <td>10 records</td>\n
+  <td>//span[@class="listbox-current-page-total-number"]</td>\n
+  <td>10</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]</td>\n
   <td>0</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[2]</td>\n
   <td>1</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[2]</td>\n
   <td>2</td>\n
 </tr>\n
 <!-- Click on + a -->\n
 <tr>\n
   <td>clickAndWait</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[1]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[1]//a[@class="tree-closed"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
@@ -148,53 +145,53 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[1]//a[@class="tree_open"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[1]//a[@class="tree-open"]</td>\n
   <td>a</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[2]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[2]//a[@class="tree-closed"]</td>\n
   <td>c1</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[3]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[3]//a[@class="tree-closed"]</td>\n
   <td>c10</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[4]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[4]//a[@class="tree-closed"]</td>\n
   <td>c11</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[26]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[26]//a[@class="tree-closed"]</td>\n
   <td>b</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_record_number</td>\n
-  <td>7 records</td>\n
+  <td>//span[@class="listbox-current-page-total-number"]</td>\n
+  <td>7</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]</td>\n
   <td>0</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[2]</td>\n
   <td>2</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[2]</td>\n
   <td>3</td>\n
 </tr>\n
 <!-- Click on + c1 -->\n
 <tr>\n
   <td>clickAndWait</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[2]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[2]//a[@class="tree-closed"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
@@ -204,53 +201,53 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[1]//a[@class="tree_open"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[1]//a[@class="tree-open"]</td>\n
   <td>a</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[2]//a[@class="tree_open"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[2]//a[@class="tree-open"]</td>\n
   <td>c1</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[3]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[3]//a[@class="tree-closed"]</td>\n
   <td>c10</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[4]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[4]//a[@class="tree-closed"]</td>\n
   <td>c11</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[26]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[26]//a[@class="tree-closed"]</td>\n
   <td>b</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_record_number</td>\n
-  <td>3 records</td>\n
+  <td>//span[@class="listbox-current-page-total-number"]</td>\n
+  <td>3</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]</td>\n
   <td>0</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[2]</td>\n
   <td>4</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[2]</td>\n
   <td>8</td>\n
 </tr>\n
 <!-- Click on - a -->\n
 <tr>\n
   <td>clickAndWait</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[1]//a[@class="tree_open"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[1]//a[@class="tree-open"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
@@ -260,27 +257,27 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[1]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[1]//a[@class="tree-closed"]</td>\n
   <td>a</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[2]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[2]//a[@class="tree-closed"]</td>\n
   <td>b</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_record_number</td>\n
-  <td>10 records</td>\n
+  <td>//span[@class="listbox-current-page-total-number"]</td>\n
+  <td>10</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]</td>\n
   <td>0</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[2]</td>\n
   <td>1</td>\n
 </tr>\n
 <!-- Reset -->\n
@@ -296,32 +293,32 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[1]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[1]//a[@class="tree-closed"]</td>\n
   <td>a</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[2]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[2]//a[@class="tree-closed"]</td>\n
   <td>b</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_record_number</td>\n
-  <td>10 records</td>\n
+  <td>//span[@class="listbox-current-page-total-number"]</td>\n
+  <td>10</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]</td>\n
   <td>0</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[2]</td>\n
   <td>1</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[2]</td>\n
   <td>2</td>\n
 </tr>\n
 </tal:block>\n
diff --git a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testConfigure.xml b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testConfigure.xml
index 46f5a9e159d885f2d4610833e5a5d6212088834e..c35b3814e845a3532b60f67ee05a80248ad5ef18 100644
--- a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testConfigure.xml
+++ b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testConfigure.xml
@@ -2,10 +2,7 @@
 <ZopeData>
   <record id="1" aka="AAAAAAAAAAE=">
     <pickle>
-      <tuple>
-        <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
-        <tuple/>
-      </tuple>
+      <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
     </pickle>
     <pickle>
       <dictionary>
@@ -90,52 +87,52 @@
 <tal:block tal:condition="python: context.TestTool_getSkinName()!=\'Mobile\'">\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[2]</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[2]</td>\n
   <td>ID</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[3]</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[3]</td>\n
   <td>Title</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[4]</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[4]</td>\n
   <td>Quantity</td>\n
 </tr> \n
 <tr>\n
   <td>verifyEditable</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[2]//input</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[2]//input</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyEditable</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[3]//input</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[3]//input</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[4]//input</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[4]//input</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementPresent</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[4]</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[4]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]</td>\n
   <td>0</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[3]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[3]</td>\n
   <td>Title 0</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[4]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[4]</td>\n
   <td>10.0</td>\n
 </tr>\n
 <tr>\n
@@ -192,47 +189,47 @@
 <!-- Check the result -->\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[2]</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[2]</td>\n
   <td>Title</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[3]</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[3]</td>\n
   <td>ID</td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[4]</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[4]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyEditable</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[2]//input</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[2]//input</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyEditable</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[3]//input</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[3]//input</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[4]</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[4]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]</td>\n
   <td>Title 0</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[3]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[3]</td>\n
   <td>0</td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[4]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[4]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
diff --git a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testContextObjects.xml b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testContextObjects.xml
index 861868dda6cb01cda4b3fa079c223e32e58a0919..f6d27f9b8c3f309b7eef4db3306a3c1e14950cc5 100644
--- a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testContextObjects.xml
+++ b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testContextObjects.xml
@@ -2,10 +2,7 @@
 <ZopeData>
   <record id="1" aka="AAAAAAAAAAE=">
     <pickle>
-      <tuple>
-        <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
-        <tuple/>
-      </tuple>
+      <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
     </pickle>
     <pickle>
       <dictionary>
@@ -88,13 +85,13 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//*[@id="listbox_data_line_0"]//a[not(@title)]</td>\n
+  <td>//*[@class="listbox-data-line-0 DataA"]//a[not(@title)]</td>\n
   <td>0</td>\n
 </tr>\n
 <tr>\n
   <tal:block tal:condition="python: context.TestTool_getSkinName()!=\'Mobile\'">\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[3]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[3]</td>\n
   <td>Title 0</td>\n
   </tal:block>\n
   <tal:block tal:condition="python: context.TestTool_getSkinName()==\'Mobile\'">\n
diff --git a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testCopyAndPaste.xml b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testCopyAndPaste.xml
index 6792896354fc330559a6506eb5fd53cd5e3cd156..f4dcc58a9f340c08bebc15a7c6fa889c71673625 100644
--- a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testCopyAndPaste.xml
+++ b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testCopyAndPaste.xml
@@ -2,10 +2,7 @@
 <ZopeData>
   <record id="1" aka="AAAAAAAAAAE=">
     <pickle>
-      <tuple>
-        <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
-        <tuple/>
-      </tuple>
+      <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
     </pickle>
     <pickle>
       <dictionary>
@@ -88,7 +85,7 @@
 </tr>\n
 <tr>\n
   <td>click</td>\n
-  <td>//*[@id=\'listbox_data_line_0\']//input[@type="checkbox"]</td>\n
+  <td>//*[@class="listbox-data-line-0 DataA"]//input[@type="checkbox"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
@@ -133,7 +130,7 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//*[@id="listbox_data_line_0"]//a[not(@title)]</td>\n
+  <td>//*[@class="listbox-data-line-0 DataA"]//a[not(@title)]</td>\n
   <td>0</td>\n
 </tr>\n
 <tr>\n
@@ -143,12 +140,13 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>x0_listbox_record_number</td>\n
-  <td>2 records</td> <!-- Creation + paste notification -->\n
+  <td>//span[@class="listbox-current-page-total-number x0_listbox-current-page-total-number"]</td>\n
+  <td>2</td> <!-- Creation + paste notification -->\n
 </tr>\n
+\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>x0_listbox_data_line_1</td>\n
+  <td>//tr[@class="x0_listbox-data-line-1 DataB"]/td[5]</td>\n
   <td>regexp:Object copied from /.*/foo_module/0$</td>\n
 </tr>\n
 <tr>\n
@@ -158,22 +156,22 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//*[@id="listbox_data_line_0"]//a[not(@title)]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]//a[not(@title)]</td>\n
   <td>0</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//*[@id="listbox_data_line_1"]//a[not(@title)]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]//a[not(@title)]</td>\n
   <td>1</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//*[@id="listbox_data_line_2"]//a[not(@title)]</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]//a[not(@title)]</td>\n
   <td>2</td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_data_line_3</td>\n
+  <td>//tr[@class="listbox-data-line-3 DataB"]</td>\n
   <td></td>\n
 </tr>\n
 \n
diff --git a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testCustomSearch.xml b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testCustomSearch.xml
index 2a5c4547ba067e583c5255c2606a7ad7ef3947a8..a9747a3e64b2a05faad3c62bb659339ccd9eba15 100644
--- a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testCustomSearch.xml
+++ b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testCustomSearch.xml
@@ -2,10 +2,7 @@
 <ZopeData>
   <record id="1" aka="AAAAAAAAAAE=">
     <pickle>
-      <tuple>
-        <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
-        <tuple/>
-      </tuple>
+      <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
     </pickle>
     <pickle>
       <dictionary>
@@ -79,52 +76,52 @@
 <tal:block tal:condition="python: context.TestTool_getSkinName()!=\'Mobile\'">\n
 <tr>\n
   <td>verifyEditable</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[2]//input</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[2]//input</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[2]//input</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[2]//input</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyEditable</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[3]//input</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[3]//input</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[3]//input</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[3]//input</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementPresent</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[4]</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[4]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[4]//input</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[4]//input</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[5]</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[5]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]</td>\n
   <td>0</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[2]</td>\n
   <td>1</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[2]</td>\n
   <td>2</td>\n
 </tr>\n
 </tal:block>\n
@@ -211,37 +208,37 @@
 <tal:block tal:condition="python: context.TestTool_getSkinName()!=\'Mobile\'">\n
  <tr>\n
   <td>verifyEditable</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[2]//input</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[2]//input</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[2]//input</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[2]//input</td>\n
   <td>0</td>\n
 </tr>\n
 <tr>\n
   <td>verifyEditable</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[3]//input</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[3]//input</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[3]//input</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[3]//input</td>\n
   <td>%l%</td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementPresent</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[4]</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[4]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[4]//input</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[4]//input</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[5]</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[5]</td>\n
   <td></td>\n
 </tr>\n
 </tal:block>\n
@@ -285,12 +282,12 @@
 \n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//*[@id="listbox_data_line_0"]//a[not(@title)]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]//a[not(@title)]</td>\n
   <td>0</td>\n
 </tr>\n
 <tr>\n
   <td>assertElementNotPresent</td>\n
-  <td>id=listbox_data_line_1</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]</td>\n
   <td></td>\n
 </tr>\n
 </tbody></table>\n
diff --git a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testCustomSort.xml b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testCustomSort.xml
index fc56b5e93486a1ca2cd5bf020dbc5ae64eb6e447..474b9d8300b44a2fdcedf91f9514925abab4c75e 100644
--- a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testCustomSort.xml
+++ b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testCustomSort.xml
@@ -2,10 +2,7 @@
 <ZopeData>
   <record id="1" aka="AAAAAAAAAAE=">
     <pickle>
-      <tuple>
-        <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
-        <tuple/>
-      </tuple>
+      <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
     </pickle>
     <pickle>
       <dictionary>
@@ -92,32 +89,32 @@
 <tal:block tal:condition="python: context.TestTool_getSkinName()!=\'Mobile\'">\n
 <tr>\n
   <td>assertElementPresent</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[2]</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[2]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>assertElementNotPresent</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[2]/img</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[2]/img</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>assertElementPresent</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[3]</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[3]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>assertElementNotPresent</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[3]/img</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[3]/img</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>assertElementPresent</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[4]</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[4]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>assertElementNotPresent</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[4]/img</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[4]/img</td>\n
   <td></td>\n
 </tr>\n
 </tal:block>\n
@@ -125,17 +122,17 @@
 <tal:block tal:condition="python: context.TestTool_getSkinName()!=\'Mobile\'">\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]</td>\n
   <td>0</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[2]</td>\n
   <td>1</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[2]</td>\n
   <td>2</td>\n
 </tr>\n
 </tal:block>\n
@@ -159,7 +156,7 @@
 \n
 <tr>\n
   <td>assertElementNotPresent</td>\n
-  <td>id=listbox_data_line_3</td>\n
+  <td>//tr[@class="listbox-data-line-3 DataB"]</td>\n
   <td></td>\n
 </tr>\n
 <!-- Go to the sort dialog -->\n
@@ -194,42 +191,42 @@
 <tal:block tal:condition="python: context.TestTool_getSkinName()!=\'Mobile\'">\n
 <tr>\n
   <td>assertElementPresent</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[2]</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[2]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>assertElementNotPresent</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[2]/img[@alt="Ascending Display"]</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[2]/button[@title="Ascending Display"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>assertElementPresent</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[2]/img[@alt="Descending Display"]</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[2]/button[@title="Descending Display"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>assertElementPresent</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[3]</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[3]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>assertElementPresent</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[3]/img[@alt="Ascending Display"]</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[3]/button[@title="Ascending Display"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>assertElementNotPresent</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[3]/img[@alt="Descending Display"]</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[3]/button[@title="Descending Display"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>assertElementPresent</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[4]</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[4]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>assertElementNotPresent</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[4]/img</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[4]/button</td>\n
   <td></td>\n
 </tr>\n
 </tal:block>\n
@@ -237,17 +234,17 @@
 <tal:block tal:condition="python: context.TestTool_getSkinName()!=\'Mobile\'">\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]</td>\n
   <td>9</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[2]</td>\n
   <td>8</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[2]</td>\n
   <td>7</td>\n
 </tr>\n
 </tal:block>\n
diff --git a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testCutAndPaste.xml b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testCutAndPaste.xml
index 68551607c08c9e9b73d853777265402624ebd44d..389bcca43b55b486b814a76a2a888e92b97be81e 100644
--- a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testCutAndPaste.xml
+++ b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testCutAndPaste.xml
@@ -2,10 +2,7 @@
 <ZopeData>
   <record id="1" aka="AAAAAAAAAAE=">
     <pickle>
-      <tuple>
-        <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
-        <tuple/>
-      </tuple>
+      <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
     </pickle>
     <pickle>
       <dictionary>
@@ -88,7 +85,7 @@
 </tr>\n
 <tr>\n
   <td>click</td>\n
-  <td>//*[@id=\'listbox_data_line_0\']//input[@type="checkbox"]</td>\n
+  <td>//tr[@class=\'listbox-data-line-0 DataA\']//input[@type="checkbox"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
@@ -133,7 +130,7 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//*[@id="listbox_data_line_0"]//a[not(@title)]</td>\n
+  <td>//*[@class=\'listbox-data-line-0 DataA\']//a[not(@title)]</td>\n
   <td>0</td>\n
 </tr>\n
 <tr>\n
@@ -143,26 +140,26 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//*[@id="listbox_data_line_0"]//a[not(@title)]</td>\n
+  <td>//*[@class=\'listbox-data-line-0 DataA\']//a[not(@title)]</td>\n
   <td>1</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//*[@id="listbox_data_line_1"]//a[not(@title)]</td>\n
+  <td>//*[@class=\'listbox-data-line-1 DataB\']//a[not(@title)]</td>\n
   <td>2</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//*[@id="listbox_data_line_2"]//a[not(@title)]</td>\n
+  <td>//*[@class=\'listbox-data-line-2 DataA\']//a[not(@title)]</td>\n
   <td>3</td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_data_line_3</td>\n
+  <td>//*[@class=\'listbox-data-line-3 DataB\']</td>\n
   <td></td>\n
 </tr>\n
 \n
-</tbody></table>\n
+</tbody></table>\t\n
 </body>\n
 </html>\n
 
diff --git a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testDataLines.xml b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testDataLines.xml
index 0c5f0e69904ce9fe4a682868d7b22716a2fc7437..7b5fa72a924c610ff7c0ae8d22ad3cf1fe48a231 100644
--- a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testDataLines.xml
+++ b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testDataLines.xml
@@ -2,10 +2,7 @@
 <ZopeData>
   <record id="1" aka="AAAAAAAAAAE=">
     <pickle>
-      <tuple>
-        <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
-        <tuple/>
-      </tuple>
+      <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
     </pickle>
     <pickle>
       <dictionary>
@@ -83,38 +80,38 @@
 </tr>\n
 <tr>\n
   <td>verifyElementPresent</td>\n
-  <td>id=listbox_data_line_0</td>\n
+  <td>//tr[@class=\'listbox-data-line-0 DataA\']</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementPresent</td>\n
-  <td>id=listbox_data_line_1</td>\n
+  <td>//tr[@class=\'listbox-data-line-1 DataB\']</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementPresent</td>\n
-  <td>id=listbox_data_line_2</td>\n
+  <td>//tr[@class=\'listbox-data-line-2 DataA\']</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_data_line_3</td>\n
+  <td>//tr[@class=\'listbox-data-line-3 DataB\']</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//*[@id="listbox_data_line_0"]//a[not(@title)]</td>\n
+  <td>//tr[@class=\'listbox-data-line-0 DataA\']//a[not(@title)]</td>\n
   <td>0</td>\n
 </tr>\n
 <tal:block tal:condition="python: context.TestTool_getSkinName()!=\'Mobile\'">\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[3]</td>\n
+  <td>//tr[@class=\'listbox-data-line-0 DataA\']/td[3]</td>\n
   <td>Title 0</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[4]</td>\n
+  <td>//tr[@class=\'listbox-data-line-0 DataA\']/td[4]</td>\n
   <td>10.0</td>\n
 </tr>\n
 </tal:block>\n
@@ -132,18 +129,18 @@
 </tal:block>  \n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//*[@id="listbox_data_line_1"]//a[not(@title)]</td>\n
+  <td>//tr[@class=\'listbox-data-line-1 DataB\']//a[not(@title)]</td>\n
   <td>1</td>\n
 </tr>\n
 <tal:block tal:condition="python: context.TestTool_getSkinName()!=\'Mobile\'">\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[3]</td>\n
+  <td>//tr[@class=\'listbox-data-line-1 DataB\']/td[3]</td>\n
   <td>Title 1</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[4]</td>\n
+  <td>//tr[@class=\'listbox-data-line-1 DataB\']/td[4]</td>\n
   <td>9.0</td>\n
 </tr>\n
 </tal:block>\n
@@ -162,18 +159,18 @@
 \n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//*[@id="listbox_data_line_2"]//a[not(@title)]</td>\n
+  <td>//tr[@class=\'listbox-data-line-2 DataA\']//a[not(@title)]</td>\n
   <td>2</td>\n
 </tr>\n
 <tal:block tal:condition="python: context.TestTool_getSkinName()!=\'Mobile\'">\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[3]</td>\n
+  <td>//tr[@class=\'listbox-data-line-2 DataA\']/td[3]</td>\n
   <td>Title 2</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[4]</td>\n
+  <td>//tr[@class=\'listbox-data-line-2 DataA\']/td[4]</td>\n
   <td>8.0</td>\n
 </tr>\n
 </tal:block>\n
@@ -207,38 +204,38 @@
 </tr>\n
 <tr>\n
   <td>verifyElementPresent</td>\n
-  <td>id=listbox_data_line_0</td>\n
+  <td>//tr[@class=\'listbox-data-line-0 DataA\']</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementPresent</td>\n
-  <td>id=listbox_data_line_1</td>\n
+  <td>//tr[@class=\'listbox-data-line-1 DataB\']</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementPresent</td>\n
-  <td>id=listbox_data_line_2</td>\n
+  <td>//tr[@class=\'listbox-data-line-2 DataA\']</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_data_line_3</td>\n
+  <td>//tr[@class=\'listbox-data-line-3 DataB\']</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//*[@id="listbox_data_line_0"]//a[not(@title)]</td>\n
+  <td>//tr[@class=\'listbox-data-line-0 DataA\']//a[not(@title)]</td>\n
   <td>0</td>\n
 </tr>\n
 <tal:block tal:condition="python: context.TestTool_getSkinName()!=\'Mobile\'">\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]</td>\n
+  <td>//tr[@class=\'listbox-data-line-0 DataA\']/td[2]</td>\n
   <td>Title 0</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[3]</td>\n
+  <td>//tr[@class=\'listbox-data-line-0 DataA\']/td[3]</td>\n
   <td>10.0</td>\n
 </tr>\n
 </tal:block>\n
@@ -257,18 +254,18 @@
 \n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//*[@id="listbox_data_line_1"]//a[not(@title)]</td>\n
+  <td>//tr[@class=\'listbox-data-line-1 DataB\']//a[not(@title)]</td>\n
   <td>1</td>\n
 </tr>\n
 <tal:block tal:condition="python: context.TestTool_getSkinName()!=\'Mobile\'">\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[2]</td>\n
+  <td>//tr[@class=\'listbox-data-line-1 DataB\']/td[2]</td>\n
   <td>Title 1</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[3]</td>\n
+  <td>//tr[@class=\'listbox-data-line-1 DataB\']/td[3]</td>\n
   <td>9.0</td>\n
 </tr>\n
 </tal:block>\n
@@ -287,18 +284,18 @@
 \n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//*[@id="listbox_data_line_2"]//a[not(@title)]</td>\n
+  <td>//tr[@class=\'listbox-data-line-2 DataA\']//a[not(@title)]</td>\n
   <td>2</td>\n
 </tr>\n
 <tal:block tal:condition="python: context.TestTool_getSkinName()!=\'Mobile\'">\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[2]</td>\n
+  <td>//tr[@class=\'listbox-data-line-2 DataA\']/td[2]</td>\n
   <td>Title 2</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[3]</td>\n
+  <td>//tr[@class=\'listbox-data-line-2 DataA\']/td[3]</td>\n
   <td>8.0</td>\n
 </tr>\n
 </tal:block>\n
diff --git a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testDelete.xml b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testDelete.xml
index 0ff8bf8855b78f1d983bc110b6a69d1025a9fe4b..7713ee97d3dac8649bde8748e10b9c491254ee1e 100644
--- a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testDelete.xml
+++ b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testDelete.xml
@@ -2,10 +2,7 @@
 <ZopeData>
   <record id="1" aka="AAAAAAAAAAE=">
     <pickle>
-      <tuple>
-        <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
-        <tuple/>
-      </tuple>
+      <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
     </pickle>
     <pickle>
       <dictionary>
@@ -88,7 +85,7 @@
 </tr>\n
 <tr>\n
   <td>click</td>\n
-  <td>//*[@id=\'listbox_data_line_0\']//input[@type="checkbox"]</td>\n
+  <td>//*[@class=\'listbox-data-line-0 DataA\']//input[@type="checkbox"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
@@ -98,8 +95,8 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>listbox_record_number</td>\n
-  <td>1 records</td>\n
+  <td>//span[@class="listbox-current-page-total-number"]</td>\n
+  <td>1</td>\n
 </tr>\n
 <!-- The listbox used to confirm deletion is a proxy to the previous listbox.\n
 It contains the same columns\n
@@ -107,23 +104,23 @@ It contains the same columns\n
 <tal:block tal:condition="python: context.TestTool_getSkinName()!=\'Mobile\'">\n
 <tr>\n
   <td>assertText</td>\n
-  <td>//tr[@id=\'listbox_label_line\']/td[1]</td>\n
+  <td>//tr[@class=\'listbox-label-line\']/th[1]</td>\n
   <td>ID</td>\n
 </tr>\n
 <tr>\n
   <td>assertText</td>\n
-  <td>//tr[@id=\'listbox_label_line\']/td[2]</td>\n
+  <td>//tr[@class=\'listbox-label-line\']/th[2]</td>\n
   <td>Title</td>\n
 </tr>\n
 <tr>\n
   <td>assertText</td>\n
-  <td>//tr[@id=\'listbox_label_line\']/td[3]</td>\n
+  <td>//tr[@class=\'listbox-label-line\']/th[3]</td>\n
   <td>Quantity</td>\n
 </tr>\n
 <!-- And an extra column to display the number of related objects. -->\n
 <tr>\n
   <td>assertText</td>\n
-  <td>//tr[@id=\'listbox_label_line\']/td[4]</td>\n
+  <td>//tr[@class=\'listbox-label-line\']/th[4]</td>\n
   <td>Number of Related Objects</td>\n
 </tr>\n
 </tal:block>\n
@@ -162,23 +159,23 @@ It contains the same columns\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//*[@id="listbox_data_line_0"]//a[not(@title)]</td>\n
+  <td>//*[@class="listbox-data-line-0 DataA"]//a[not(@title)]</td>\n
   <td>0</td>\n
   <td>We suppose here that the workflow is configured in such way that deleted items can still be viewed.</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//*[@id="listbox_data_line_1"]//a[not(@title)]</td>\n
+  <td>//*[@class="listbox-data-line-1 DataB"]//a[not(@title)]</td>\n
   <td>1</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//*[@id="listbox_data_line_2"]//a[not(@title)]</td>\n
+  <td>//*[@class="listbox-data-line-2 DataA"]//a[not(@title)]</td>\n
   <td>2</td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_data_line_3</td>\n
+  <td>//tr[@class="listbox-data-line-3 DataB"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
@@ -208,12 +205,12 @@ It contains the same columns\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//*[@id="listbox_data_line_0"]//a[not(@title)]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]//a[not(@title)]</td>\n
   <td>0</td>\n
 </tr>\n
 <tr>\n
   <td>click</td>\n
-  <td>//*[@id=\'listbox_data_line_0\']//input[@type="checkbox"]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]//input[@type="checkbox"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
@@ -269,7 +266,7 @@ It contains the same columns\n
 <tal:block tal:condition="python: context.TestTool_getSkinName()!=\'Mobile\'">\n
 <tr>\n
   <td>clickAndWait</td>\n
-  <td>link=Foo Lines:</td>\n
+  <td>link=Foo Lines</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
diff --git a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testDomainAndReportTrees.xml b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testDomainAndReportTrees.xml
index 7ddc274c75373c81471c76ee31f75aceafad907c..0455bd91629f1062b986f82eb171023e1299b753 100644
--- a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testDomainAndReportTrees.xml
+++ b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testDomainAndReportTrees.xml
@@ -2,10 +2,7 @@
 <ZopeData>
   <record id="1" aka="AAAAAAAAAAE=">
     <pickle>
-      <tuple>
-        <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
-        <tuple/>
-      </tuple>
+      <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
     </pickle>
     <pickle>
       <dictionary>
@@ -97,7 +94,7 @@
 </tr>\n
 <tr>\n
   <td>clickAndWait</td>\n
-  <td>id=listbox_domain_tree_mode</td>\n
+  <td>//input[@class="listbox-tree-domain-tree-mode"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
@@ -107,38 +104,38 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[1]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[1]//a[@class="tree-closed"]</td>\n
   <td>a</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[2]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[2]//a[@class="tree-closed"]</td>\n
   <td>b</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_record_number</td>\n
-  <td>10 records</td>\n
+  <td>//span[@class="listbox-current-page-total-number"]</td>\n
+  <td>10</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]</td>\n
   <td>0</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[2]</td>\n
   <td>1</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[2]</td>\n
   <td>2</td>\n
 </tr>\n
 <!-- Click on + a -->\n
 <tr>\n
   <td>clickAndWait</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[1]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[1]//a[@class="tree-closed"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
@@ -148,42 +145,42 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[1]//a[@class="tree_open"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[1]//a[@class="tree-open"]</td>\n
   <td>a</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[2]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[2]//a[@class="tree-closed"]</td>\n
   <td>a1</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[3]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[3]//a[@class="tree-closed"]</td>\n
   <td>a2</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[4]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[4]//a[@class="tree-closed"]</td>\n
   <td>b</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_record_number</td>\n
-  <td>7 records</td>\n
+  <td>//span[@class="listbox-current-page-total-number"]</td>\n
+  <td>7</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]</td>\n
   <td>0</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[2]</td>\n
   <td>2</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[2]</td>\n
   <td>3</td>\n
 </tr>\n
 \n
@@ -214,7 +211,7 @@
 </tr>\n
 <tr>\n
   <td>clickAndWait</td>\n
-  <td>id=listbox_report_tree_mode</td>\n
+  <td>//input[@class="listbox-tree-report-tree-mode"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
diff --git a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testDomainTree.xml b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testDomainTree.xml
index a3d2b763a61d8eb792bd8506022253106b83c5f0..56c2b3d7a0223d3ce8a269bd1babe938d60bd172 100644
--- a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testDomainTree.xml
+++ b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testDomainTree.xml
@@ -2,10 +2,7 @@
 <ZopeData>
   <record id="1" aka="AAAAAAAAAAE=">
     <pickle>
-      <tuple>
-        <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
-        <tuple/>
-      </tuple>
+      <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
     </pickle>
     <pickle>
       <dictionary>
@@ -97,7 +94,7 @@
 </tr>\n
 <tr>\n
   <td>clickAndWait</td>\n
-  <td>id=listbox_domain_tree_mode</td>\n
+  <td>//input[@class="listbox-tree-domain-tree-mode"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
@@ -107,38 +104,38 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[1]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[1]//a[@class="tree-closed"]</td>\n
   <td>a</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[2]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[2]//a[@class="tree-closed"]</td>\n
   <td>b</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_record_number</td>\n
-  <td>10 records</td>\n
+  <td>//span[@class="listbox-current-page-total-number"]</td>\n
+  <td>10</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]</td>\n
   <td>0</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[2]</td>\n
   <td>1</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[2]</td>\n
   <td>2</td>\n
 </tr>\n
 <!-- Click on + a -->\n
 <tr>\n
   <td>clickAndWait</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[1]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[1]//a[@class="tree-closed"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
@@ -148,48 +145,48 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[1]//a[@class="tree_open"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[1]//a[@class="tree-open"]</td>\n
   <td>a</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[2]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[2]//a[@class="tree-closed"]</td>\n
   <td>a1</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[3]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[3]//a[@class="tree-closed"]</td>\n
   <td>a2</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[4]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[4]//a[@class="tree-closed"]</td>\n
   <td>b</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_record_number</td>\n
-  <td>7 records</td>\n
+  <td>//span[@class="listbox-current-page-total-number"]</td>\n
+  <td>7</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]</td>\n
   <td>0</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[2]</td>\n
   <td>2</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[2]</td>\n
   <td>3</td>\n
 </tr>\n
 <!-- Click on + a2 -->\n
 <tr>\n
   <td>clickAndWait</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[3]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[3]//a[@class="tree-closed"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
@@ -199,43 +196,43 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[1]//a[@class="tree_open"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[1]//a[@class="tree-open"]</td>\n
   <td>a</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[2]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[2]//a[@class="tree-closed"]</td>\n
   <td>a1</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[3]//a[@class="tree_open"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[3]//a[@class="tree-open"]</td>\n
   <td>a2</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[4]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[4]//a[@class="tree-closed"]</td>\n
   <td>b</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_record_number</td>\n
-  <td>2 records</td>\n
+  <td>//span[@class="listbox-current-page-total-number"]</td>\n
+  <td>2</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]</td>\n
   <td>3</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[2]</td>\n
   <td>7</td>\n
 </tr>\n
 <!-- Click on - a -->\n
 <tr>\n
   <td>clickAndWait</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[1]//a[@class="tree_open"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[1]//a[@class="tree-open"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
@@ -245,27 +242,27 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[1]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[1]//a[@class="tree-closed"]</td>\n
   <td>a</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[2]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[2]//a[@class="tree-closed"]</td>\n
   <td>b</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_record_number</td>\n
-  <td>10 records</td>\n
+  <td>//span[@class="listbox-current-page-total-number"]</td>\n
+  <td>10</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]</td>\n
   <td>0</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[2]</td>\n
   <td>1</td>\n
 </tr>\n
 <!-- Reset -->\n
@@ -281,32 +278,32 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[1]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[1]//a[@class="tree-closed"]</td>\n
   <td>a</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[2]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[2]//a[@class="tree-closed"]</td>\n
   <td>b</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_record_number</td>\n
-  <td>10 records</td>\n
+  <td>//span[@class="listbox-current-page-total-number"]</td>\n
+  <td>10</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]</td>\n
   <td>0</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[2]</td>\n
   <td>1</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[2]</td>\n
   <td>2</td>\n
 </tr>\n
 </tal:block>\n
diff --git a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testDomainTreeObsoleteValue.xml b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testDomainTreeObsoleteValue.xml
index da26f1614e10c5e2959019245a38455ae5648379..2f36348bc17f31bc824add14531394012c02c147 100644
--- a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testDomainTreeObsoleteValue.xml
+++ b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testDomainTreeObsoleteValue.xml
@@ -2,10 +2,7 @@
 <ZopeData>
   <record id="1" aka="AAAAAAAAAAE=">
     <pickle>
-      <tuple>
-        <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
-        <tuple/>
-      </tuple>
+      <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
     </pickle>
     <pickle>
       <dictionary>
@@ -97,7 +94,7 @@
 </tr>\n
 <tr>\n
   <td>clickAndWait</td>\n
-  <td>id=listbox_domain_tree_mode</td>\n
+  <td>//input[@class="listbox-tree-domain-tree-mode"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
@@ -107,38 +104,38 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[1]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[1]//a[@class="tree-closed"]</td>\n
   <td>Title 0</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[2]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[2]//a[@class="tree-closed"]</td>\n
   <td>Title 1</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_record_number</td>\n
-  <td>10 records</td>\n
+  <td>//span[@class="listbox-current-page-total-number"]</td>\n
+  <td>10</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]</td>\n
   <td>0</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[2]</td>\n
   <td>1</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[2]</td>\n
   <td>2</td>\n
 </tr>\n
 <!-- Click on + Title 0 -->\n
 <tr>\n
   <td>clickAndWait</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[1]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[1]//a[@class="tree-closed"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
@@ -148,32 +145,32 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[1]//a[@class="tree_open"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[1]//a[@class="tree-open"]</td>\n
   <td>Title 0</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[2]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[2]//a[@class="tree-closed"]</td>\n
   <td>Title 1</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[3]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[3]//a[@class="tree-closed"]</td>\n
   <td>Title 2</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[4]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[4]//a[@class="tree-closed"]</td>\n
   <td>Title 3</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_record_number</td>\n
-  <td>1 records</td>\n
+  <td>//span[@class="listbox-current-page-total-number"]</td>\n
+  <td>1</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]</td>\n
   <td>0</td>\n
 </tr>\n
 \n
@@ -197,27 +194,27 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[1]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[1]//a[@class="tree-closed"]</td>\n
   <td>Title 1</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[2]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[2]//a[@class="tree-closed"]</td>\n
   <td>Title 2</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_record_number</td>\n
-  <td>9 records</td>\n
+  <td>//span[@class="listbox-current-page-total-number"]</td>\n
+  <td>9</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]</td>\n
   <td>1</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[2]</td>\n
   <td>2</td>\n
 </tr>\n
 \n
diff --git a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testDynamicDomainTree.xml b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testDynamicDomainTree.xml
index 646838b374860e8f9646213d13a647090258837a..2d7e1200af8a85442e6ca6113abcbbf0d90b7ce8 100644
--- a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testDynamicDomainTree.xml
+++ b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testDynamicDomainTree.xml
@@ -2,10 +2,7 @@
 <ZopeData>
   <record id="1" aka="AAAAAAAAAAE=">
     <pickle>
-      <tuple>
-        <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
-        <tuple/>
-      </tuple>
+      <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
     </pickle>
     <pickle>
       <dictionary>
@@ -97,7 +94,7 @@
 </tr>\n
 <tr>\n
   <td>clickAndWait</td>\n
-  <td>id=listbox_domain_tree_mode</td>\n
+  <td>//input[@class="listbox-tree-domain-tree-mode"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
@@ -107,38 +104,38 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[1]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[1]//a[@class="tree-closed"]</td>\n
   <td>a</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[2]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[2]//a[@class="tree-closed"]</td>\n
   <td>b</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_record_number</td>\n
-  <td>10 records</td>\n
+  <td>//span[@class="listbox-current-page-total-number"]</td>\n
+  <td>10</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]</td>\n
   <td>0</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[2]</td>\n
   <td>1</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[2]</td>\n
   <td>2</td>\n
 </tr>\n
 <!-- Click on + a -->\n
 <tr>\n
   <td>clickAndWait</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[1]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[1]//a[@class="tree-closed"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
@@ -148,48 +145,48 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[1]//a[@class="tree_open"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[1]//a[@class="tree-open"]</td>\n
   <td>a</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[2]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[2]//a[@class="tree-closed"]</td>\n
   <td>a1</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[3]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[3]//a[@class="tree-closed"]</td>\n
   <td>a2</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[4]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[4]//a[@class="tree-closed"]</td>\n
   <td>b</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_record_number</td>\n
-  <td>7 records</td>\n
+  <td>//span[@class="listbox-current-page-total-number"]</td>\n
+  <td>7</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]</td>\n
   <td>0</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[2]</td>\n
   <td>2</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[2]</td>\n
   <td>3</td>\n
 </tr>\n
 <!-- Click on + a2 -->\n
 <tr>\n
   <td>clickAndWait</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[3]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[3]//a[@class="tree-closed"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
@@ -199,43 +196,43 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[1]//a[@class="tree_open"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[1]//a[@class="tree-open"]</td>\n
   <td>a</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[2]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[2]//a[@class="tree-closed"]</td>\n
   <td>a1</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[3]//a[@class="tree_open"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[3]//a[@class="tree-open"]</td>\n
   <td>a2</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[4]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[4]//a[@class="tree-closed"]</td>\n
   <td>b</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_record_number</td>\n
-  <td>2 records</td>\n
+  <td>//span[@class="listbox-current-page-total-number"]</td>\n
+  <td>2</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]</td>\n
   <td>3</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[2]</td>\n
   <td>7</td>\n
 </tr>\n
 <!-- Click on - a -->\n
 <tr>\n
   <td>clickAndWait</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[1]//a[@class="tree_open"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[1]//a[@class="tree-open"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
@@ -245,27 +242,27 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[1]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[1]//a[@class="tree-closed"]</td>\n
   <td>a</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[2]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[2]//a[@class="tree-closed"]</td>\n
   <td>b</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_record_number</td>\n
-  <td>10 records</td>\n
+  <td>//span[@class="listbox-current-page-total-number"]</td>\n
+  <td>10</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]</td>\n
   <td>0</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[2]</td>\n
   <td>1</td>\n
 </tr>\n
 <!-- Reset -->\n
@@ -281,32 +278,32 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[1]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[1]//a[@class="tree-closed"]</td>\n
   <td>a</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[2]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[2]//a[@class="tree-closed"]</td>\n
   <td>b</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_record_number</td>\n
-  <td>10 records</td>\n
+  <td>//span[@class="listbox-current-page-total-number"]</td>\n
+  <td>10</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]</td>\n
   <td>0</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[2]</td>\n
   <td>1</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[2]</td>\n
   <td>2</td>\n
 </tr>\n
 </tal:block>\n
diff --git a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testDynamicReportTree.xml b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testDynamicReportTree.xml
index 63ee60329245321b0d89c2682c9b001099361422..ddac7e9a57bb44df3ca5883c8f631e86bbc86f9c 100644
--- a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testDynamicReportTree.xml
+++ b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testDynamicReportTree.xml
@@ -94,7 +94,7 @@
 </tr>\n
 <tr>\n
   <td>clickAndWait</td>\n
-  <td>id=listbox_report_tree_mode</td>\n
+  <td>//input[@class="listbox-tree-report-tree-mode"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
@@ -104,28 +104,58 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[1]</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[1]</td>\n
   <td>Foo Domain</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[3]</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[3]</td>\n
   <td>ID</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[4]</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[4]</td>\n
   <td>Title</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[5]</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[5]</td>\n
   <td>Quantity</td>\n
 </tr>\n
 <tr>\n
-  <td>verifyText</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[1]</td>\n
-  <td>0 1 2 3 4 5 - Hide</td>\n
+  <td>verifyTextPresent</td>\n
+  <td>0</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>1</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>2</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>3</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>4</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>5</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>Hide</td>\n
+  <td></td>\n
 </tr>\n
 <!-- Click on Hide -->\n
 <tr>\n
@@ -134,49 +164,74 @@
   <td></td>\n
 </tr>\n
 <tr>\n
-  <td>verifyText</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[1]</td>\n
-  <td>0 1 2 3 4 5 - Show</td>\n
+  <td>verifyTextPresent</td>\n
+  <td>1</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>2</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>3</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>4</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>5</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>Show</td>\n
+  <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[1]/a[@class="tree_closed"]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[1]/a[@class="tree-closed"]</td>\n
   <td>a</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[3]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[3]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[1]/a[@class="tree_closed"]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[1]/a[@class="tree-closed"]</td>\n
   <td>b</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[2]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[3]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[3]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_data_line_2</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_record_number</td>\n
-  <td>2 records</td>\n
+  <td>//span[@class="listbox-current-page-total-number"]</td>\n
+  <td>2</td>\n
 </tr>\n
 <!-- Click on + a -->\n
 <tr>\n
@@ -191,58 +246,58 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[1]/a[@class="tree_open"]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[1]/a[@class="tree-open"]</td>\n
   <td>a</td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementPresent</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]/input</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]/input</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[3]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[3]</td>\n
   <td>0</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[1]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[1]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementPresent</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[2]/input</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[2]/input</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[3]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[3]</td>\n
   <td>4</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[1]</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[1]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementPresent</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[2]/input</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[2]/input</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[3]</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[3]</td>\n
   <td>8</td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_data_line_3</td>\n
+  <td>//tr[@class="listbox-data-line-3 DataB"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_record_number</td>\n
-  <td>6 records</td>\n
+  <td>//span[@class="listbox-current-page-total-number"]</td>\n
+  <td>6</td>\n
 </tr>\n
 <!-- Go to next page -->\n
 <tr>\n
@@ -257,58 +312,61 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[1]/a[@class="tree_closed"]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[1]/a[@class="tree-closed"]</td>\n
   <td>a1</td>\n
 </tr>\n
-<tr>\n
+<!--<tr> \n
   <td>verifyElementNotPresent</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]/input</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]/input</td>\n
   <td></td>\n
-</tr>\n
+  <td>it exists actually</td>\n
+</tr>-->\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[3]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[3]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[1]/a[@class="tree_closed"]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[1]/a[@class="tree-closed"]</td>\n
   <td>a2</td>\n
 </tr>\n
-<tr>\n
+<!--<tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[2]/input</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[2]/input</td>\n
   <td></td>\n
-</tr>\n
+  <td>it exists actually</td>\n
+</tr>-->\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[3]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[3]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[1]/a[@class="tree_closed"]</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[1]/a[@class="tree-closed"]</td>\n
   <td>b</td>\n
 </tr>\n
-<tr>\n
+<!--<tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[2]/input</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[2]/input</td>\n
   <td></td>\n
-</tr>\n
+  <td>it exists actually</td>\n
+</tr>-->\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[3]</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[3]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_data_line_3</td>\n
+  <td>//tr[@class="listbox-data-line-3 DataB"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_record_number</td>\n
-  <td>6 records</td>\n
+  <td>//span[@class="listbox-current-page-total-number"]</td>\n
+  <td>6</td>\n
 </tr>\n
 <!-- Show all the 1st level -->\n
 <tr>\n
@@ -323,58 +381,60 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[1]/a[@class="tree_closed"]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[1]/a[@class="tree-closed"]</td>\n
   <td>a1</td>\n
 </tr>\n
-<tr>\n
+<!--<tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]/input</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]/input</td>\n
   <td></td>\n
-</tr>\n
+  <td> it exists actually</td>\n
+</tr>-->\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[3]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[3]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[1]/a[@class="tree_closed"]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[1]/a[@class="tree-closed"]</td>\n
   <td>a2</td>\n
 </tr>\n
-<tr>\n
+<!--<tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[2]/input</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[2]/input</td>\n
   <td></td>\n
-</tr>\n
+  <td> it exists actually</td>\n
+</tr>-->\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[3]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[3]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[1]/a[@class="tree_open"]</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[1]/a[@class="tree-open"]</td>\n
   <td>b</td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementPresent</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[2]/input</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[2]/input</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[3]</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[3]</td>\n
   <td>1</td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_data_line_3</td>\n
+  <td>//tr[@class="listbox-data-line-3 DataB"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_record_number</td>\n
-  <td>8 records</td>\n
+  <td>//span[@class="listbox-current-page-total-number"]</td>\n
+  <td>8</td>\n
 </tr>\n
 <!-- Go to next page -->\n
 <tr>\n
@@ -389,43 +449,43 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[1]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[1]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementPresent</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]/input</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]/input</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[3]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[3]</td>\n
   <td>5</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[1]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[1]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementPresent</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[2]/input</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[2]/input</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[3]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[3]</td>\n
   <td>9</td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_data_line_2</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_record_number</td>\n
-  <td>8 records</td>\n
+  <td>//span[@class="listbox-current-page-total-number"]</td>\n
+  <td>8</td>\n
 </tr>\n
 <!-- Still very far from complete. Show/Hide should be tested, closing a tree should be tested, sorting should be tested. -->\n
 </tal:block>\n
diff --git a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testEditableError.xml b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testEditableError.xml
index 0fa0fb61a1d9e842a54b2e98d6db6a75bb0e21ca..fc542cd1c263f13fe91367260f8ac75fd5d06992 100644
--- a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testEditableError.xml
+++ b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testEditableError.xml
@@ -2,10 +2,7 @@
 <ZopeData>
   <record id="1" aka="AAAAAAAAAAE=">
     <pickle>
-      <tuple>
-        <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
-        <tuple/>
-      </tuple>
+      <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
     </pickle>
     <pickle>
       <dictionary>
@@ -107,13 +104,13 @@
 </tr>\n
 <tr>\n
   <td>assertElementNotPresent</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[1]/a/input</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[1]/a/input</td>\n
   <td></td>\n
   <td>Make sure an no a tag is present in ListBox</td>\n
 </tr>\n
 <tr>\n
   <td>assertElementPresent</td>\n
-  <td>//*[@id="listbox_data_line_0"]//input</td>\n
+  <td>//*[@class="listbox-data-line-0 DataA"]//input</td>\n
   <td></td>\n
   <td>Make sure there is an input tag in line 1 col 1</td>\n
 </tr>\n
diff --git a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testEditableNoLink.xml b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testEditableNoLink.xml
index 312a3b41529ea37faa79946999cb33e1749e9792..e054a044ebca4c8dbabef0dd932d997b413725d0 100644
--- a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testEditableNoLink.xml
+++ b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testEditableNoLink.xml
@@ -2,10 +2,7 @@
 <ZopeData>
   <record id="1" aka="AAAAAAAAAAE=">
     <pickle>
-      <tuple>
-        <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
-        <tuple/>
-      </tuple>
+      <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
     </pickle>
     <pickle>
       <dictionary>
@@ -107,13 +104,13 @@
 </tr>\n
 <tr>\n
   <td>assertElementNotPresent</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[1]/a/input</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[1]/a/input</td>\n
   <td></td>\n
   <td>Make sure an no a tag is present in ListBox</td>\n
 </tr>\n
 <tr>\n
   <td>assertElementPresent</td>\n
-  <td>//*[@id="listbox_data_line_0"]//input</td>\n
+  <td>//*[@class="listbox-data-line-0 DataA"]//input</td>\n
   <td></td>\n
   <td>Make sure there is an input tag in line 1 col 1</td>\n
 </tr>\n
diff --git a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testFilter.xml b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testFilter.xml
index 797c4b5f728bc0f2f1d78ed9ba882523aa8ac43d..f65d44060b36cf25304eeef8b149ff4c50ac8801 100644
--- a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testFilter.xml
+++ b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testFilter.xml
@@ -75,38 +75,38 @@
 </tr>\n
 <tr>\n
   <td>verifyEditable</td>\n
-  <td>//*[@id="listbox_data_line_0"]//input[@type="checkbox"]</td>\n
+  <td>//*[@class="listbox-data-line-0 DataA"]//input[@type="checkbox"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//*[@id="listbox_data_line_0"]//input[@type="checkbox"]</td>\n
+  <td>//*[@class="listbox-data-line-0 DataA"]//input[@type="checkbox"]</td>\n
   <td>off</td>\n
 </tr>\n
 <tr>\n
   <td>verifyEditable</td>\n
-  <td>//*[@id="listbox_data_line_1"]//input[@type="checkbox"]</td>\n
+  <td>//*[@class="listbox-data-line-1 DataB"]//input[@type="checkbox"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//*[@id="listbox_data_line_1"]//input[@type="checkbox"]</td>\n
+  <td>//*[@class="listbox-data-line-1 DataB"]//input[@type="checkbox"]</td>\n
   <td>off</td>\n
 </tr>\n
 <tr>\n
   <td>verifyEditable</td>\n
-  <td>//*[@id="listbox_data_line_1"]//input[@type="checkbox"]</td>\n
+  <td>//*[@class="listbox-data-line-1 DataB"]//input[@type="checkbox"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//*[@id="listbox_data_line_1"]//input[@type="checkbox"]</td>\n
+  <td>//*[@class="listbox-data-line-1 DataB"]//input[@type="checkbox"]</td>\n
   <td>off</td>\n
 </tr>\n
 <!-- Checked rows must be remembered -->\n
 <tr>\n
   <td>click</td>\n
-  <td>//*[@id="listbox_data_line_0"]//input[@type="checkbox"]</td>\n
+  <td>//*[@class="listbox-data-line-0 DataA"]//input[@type="checkbox"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
@@ -116,7 +116,7 @@
 </tr>\n
 <tr>\n
   <td>click</td>\n
-  <td>//*[@id="listbox_data_line_0"]//input[@type="checkbox"]</td>\n
+  <td>//*[@class="listbox-data-line-0 DataA"]//input[@type="checkbox"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
@@ -126,17 +126,17 @@
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//*[@id="listbox_data_line_0"]//input[@type="checkbox"]</td>\n
+  <td>//*[@class="listbox-data-line-0 DataA"]//input[@type="checkbox"]</td>\n
   <td>on</td>\n
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//*[@id="listbox_data_line_1"]//input[@type="checkbox"]</td>\n
+  <td>//*[@class="listbox-data-line-1 DataB"]//input[@type="checkbox"]</td>\n
   <td>off</td>\n
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//*[@id=\'listbox_data_line_2\']//input[@type="checkbox"]</td>\n
+  <td>//*[@class="listbox-data-line-2 DataA"]//input[@type="checkbox"]</td>\n
   <td>off</td>\n
 </tr>\n
 <tr>\n
@@ -146,17 +146,17 @@
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//*[@id="listbox_data_line_0"]//input[@type="checkbox"]</td>\n
+  <td>//*[@class="listbox-data-line-0 DataA"]//input[@type="checkbox"]</td>\n
   <td>on</td>\n
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//*[@id="listbox_data_line_1"]//input[@type="checkbox"]</td>\n
+  <td>//*[@class="listbox-data-line-1 DataB"]//input[@type="checkbox"]</td>\n
   <td>off</td>\n
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//*[@id=\'listbox_data_line_2\']//input[@type="checkbox"]</td>\n
+  <td>//*[@class="listbox-data-line-2 DataA"]//input[@type="checkbox"]</td>\n
   <td>off</td>\n
 </tr>\n
 <!-- Filter on the second page -->\n
@@ -167,22 +167,22 @@
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//*[@id="listbox_data_line_0"]//input[@type="checkbox"]</td>\n
+  <td>//*[@class="listbox-data-line-0 DataA"]//input[@type="checkbox"]</td>\n
   <td>on</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//*[@id="listbox_data_line_0"]//a[not(@title)]</td>\n
+  <td>//*[@class="listbox-data-line-0 DataA"]//a[not(@title)]</td>\n
   <td>0</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//*[@id="listbox_data_line_1"]//a[not(@title)]</td>\n
+  <td>//*[@class="listbox-data-line-1 DataB"]//a[not(@title)]</td>\n
   <td>3</td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_data_line_2</td>\n
+  <td>//*[@class="listbox-data-line-2 DataA"]</td>\n
   <td></td>\n
 </tr>\n
 <tal:block tal:condition="python: context.TestTool_getSkinName()!=\'Mobile\'">\n
@@ -213,17 +213,17 @@
 </tal:block>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//*[@id="listbox_data_line_0"]//a[not(@title)]</td>\n
+  <td>//*[@class="listbox-data-line-0 DataA"]//a[not(@title)]</td>\n
   <td>0</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//*[@id="listbox_data_line_1"]//a[not(@title)]</td>\n
+  <td>//*[@class="listbox-data-line-1 DataB"]//a[not(@title)]</td>\n
   <td>3</td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_data_line_2</td>\n
+  <td>//*[@class="listbox-data-line-2 DataA"]</td>\n
   <td></td>\n
 </tr>\n
 <tal:block tal:condition="python: context.TestTool_getSkinName()!=\'Mobile\'">\n
@@ -235,12 +235,12 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//*[@id="listbox_data_line_0"]//a[not(@title)]</td>\n
+  <td>//*[@class="listbox-data-line-0 DataA"]//a[not(@title)]</td>\n
   <td>3</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//*[@id="listbox_data_line_1"]//a[not(@title)]</td>\n
+  <td>//*[@class="listbox-data-line-1 DataB"]//a[not(@title)]</td>\n
   <td>0</td>\n
 </tr>\n
 </tal:block>\n
@@ -258,14 +258,14 @@
 </tal:block>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_data_line_2</td>\n
+  <td>//*[@class="listbox-data-line-3 DataB"]</td>\n
   <td></td>\n
 </tr>\n
 <!-- Search by id -->\n
 <tr>\n
   <tal:block tal:condition="python: context.TestTool_getSkinName()!=\'Mobile\'">\n
   <td>type</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[2]//input</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[2]//input</td>\n
   <td>3</td>\n
   </tal:block>\n
   <tal:block tal:condition="python: context.TestTool_getSkinName()==\'Mobile\'">\n
@@ -281,12 +281,12 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//*[@id="listbox_data_line_0"]//a[not(@title)]</td>\n
+  <td>//*[@class="listbox-data-line-0 DataA"]//a[not(@title)]</td>\n
   <td>3</td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_data_line_1</td>\n
+  <td>//*[@class="listbox-data-line-1 DataB"]</td>\n
   <td></td>\n
 </tr>\n
 <!-- Reset -->\n
@@ -297,33 +297,33 @@
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//*[@id="listbox_data_line_0"]//input[@type="checkbox"]</td>\n
+  <td>//*[@class="listbox-data-line-0 DataA"]//input[@type="checkbox"]</td>\n
   <td>off</td>\n
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//*[@id="listbox_data_line_1"]//input[@type="checkbox"]</td>\n
+  <td>//*[@class="listbox-data-line-1 DataB"]//input[@type="checkbox"]</td>\n
   <td>off</td>\n
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//*[@id=\'listbox_data_line_2\']//input[@type="checkbox"]</td>\n
+  <td>//*[@class="listbox-data-line-2 DataA"]//input[@type="checkbox"]</td>\n
   <td>off</td>\n
 </tr>\n
 <tal:block tal:condition="python: context.TestTool_getSkinName()!=\'Mobile\'">\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//*[@id="listbox_data_line_0"]//a[not(@title)]</td>\n
+  <td>//*[@class="listbox-data-line-0 DataA"]//a[not(@title)]</td>\n
   <td>9</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//*[@id="listbox_data_line_1"]//a[not(@title)]</td>\n
+  <td>//*[@class="listbox-data-line-1 DataB"]//a[not(@title)]</td>\n
   <td>8</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//*[@id="listbox_data_line_2"]//a[not(@title)]</td>\n
+  <td>//*[@class="listbox-data-line-2 DataA"]//a[not(@title)]</td>\n
   <td>7</td>\n
 </tr>\n
 </tal:block>\n
@@ -348,7 +348,7 @@
 \n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_data_line_3</td>\n
+  <td>//*[@class="listbox-data-line-3 DataB"]</td>\n
   <td></td>\n
 </tr>\n
 <!-- Check all -->\n
@@ -359,17 +359,17 @@
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//*[@id="listbox_data_line_0"]//input[@type="checkbox"]</td>\n
+  <td>//*[@class="listbox-data-line-0 DataA"]//input[@type="checkbox"]</td>\n
   <td>on</td>\n
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//*[@id="listbox_data_line_1"]//input[@type="checkbox"]</td>\n
+  <td>//*[@class="listbox-data-line-1 DataB"]//input[@type="checkbox"]</td>\n
   <td>on</td>\n
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//*[@id=\'listbox_data_line_2\']//input[@type="checkbox"]</td>\n
+  <td>//*[@class="listbox-data-line-2 DataA"]//input[@type="checkbox"]</td>\n
   <td>on</td>\n
 </tr>\n
 <tr>\n
@@ -379,17 +379,17 @@
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//*[@id="listbox_data_line_0"]//input[@type="checkbox"]</td>\n
+  <td>//*[@class="listbox-data-line-0 DataA"]//input[@type="checkbox"]</td>\n
   <td>off</td>\n
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//*[@id="listbox_data_line_1"]//input[@type="checkbox"]</td>\n
+  <td>//*[@class="listbox-data-line-1 DataB"]//input[@type="checkbox"]</td>\n
   <td>off</td>\n
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//*[@id=\'listbox_data_line_2\']//input[@type="checkbox"]</td>\n
+  <td>//*[@class="listbox-data-line-2 DataA"]//input[@type="checkbox"]</td>\n
   <td>off</td>\n
 </tr>\n
 <tr>\n
@@ -399,17 +399,17 @@
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//*[@id="listbox_data_line_0"]//input[@type="checkbox"]</td>\n
+  <td>//*[@class="listbox-data-line-0 DataA"]//input[@type="checkbox"]</td>\n
   <td>on</td>\n
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//*[@id="listbox_data_line_1"]//input[@type="checkbox"]</td>\n
+  <td>//*[@class="listbox-data-line-1 DataB"]//input[@type="checkbox"]</td>\n
   <td>on</td>\n
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//*[@id=\'listbox_data_line_2\']//input[@type="checkbox"]</td>\n
+  <td>//*[@class="listbox-data-line-2 DataA"]//input[@type="checkbox"]</td>\n
   <td>on</td>\n
 </tr>\n
 <!-- Uncheck all -->\n
@@ -420,17 +420,17 @@
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//*[@id="listbox_data_line_0"]//input[@type="checkbox"]</td>\n
+  <td>//*[@class="listbox-data-line-0 DataA"]//input[@type="checkbox"]</td>\n
   <td>off</td>\n
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//*[@id="listbox_data_line_1"]//input[@type="checkbox"]</td>\n
+  <td>//*[@class="listbox-data-line-1 DataB"]//input[@type="checkbox"]</td>\n
   <td>off</td>\n
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//*[@id=\'listbox_data_line_2\']//input[@type="checkbox"]</td>\n
+  <td>//*[@class="listbox-data-line-2 DataA"]//input[@type="checkbox"]</td>\n
   <td>off</td>\n
 </tr>\n
 <tr>\n
@@ -440,17 +440,17 @@
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//*[@id="listbox_data_line_0"]//input[@type="checkbox"]</td>\n
+  <td>//*[@class="listbox-data-line-0 DataA"]//input[@type="checkbox"]</td>\n
   <td>on</td>\n
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//*[@id="listbox_data_line_1"]//input[@type="checkbox"]</td>\n
+  <td>//*[@class="listbox-data-line-1 DataB"]//input[@type="checkbox"]</td>\n
   <td>on</td>\n
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//*[@id=\'listbox_data_line_2\']//input[@type="checkbox"]</td>\n
+  <td>//*[@class="listbox-data-line-2 DataA"]//input[@type="checkbox"]</td>\n
   <td>on</td>\n
 </tr>\n
 <tr>\n
@@ -460,17 +460,17 @@
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//*[@id="listbox_data_line_0"]//input[@type="checkbox"]</td>\n
+  <td>//*[@class="listbox-data-line-0 DataA"]//input[@type="checkbox"]</td>\n
   <td>off</td>\n
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//*[@id="listbox_data_line_1"]//input[@type="checkbox"]</td>\n
+  <td>//*[@class="listbox-data-line-1 DataB"]//input[@type="checkbox"]</td>\n
   <td>off</td>\n
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//*[@id=\'listbox_data_line_2\']//input[@type="checkbox"]</td>\n
+  <td>//*[@class="listbox-data-line-2 DataA"]//input[@type="checkbox"]</td>\n
   <td>off</td>\n
 </tr>\n
 \n
@@ -488,12 +488,12 @@ and search parameters are remembered -->\n
 </tr>\n
 <tr>\n
   <td>click</td>\n
-  <td>//*[@id="listbox_data_line_0"]//input[@type="checkbox"]</td>\n
+  <td>//*[@class="listbox-data-line-0 DataA"]//input[@type="checkbox"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>click</td>\n
-  <td>//*[@id=\'listbox_data_line_2\']//input[@type="checkbox"]</td>\n
+  <td>//*[@class="listbox-data-line-2 DataA"]//input[@type="checkbox"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
@@ -503,13 +503,13 @@ and search parameters are remembered -->\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_record_number</td>\n
-  <td>2 records</td>\n
+  <td>//span[@class="listbox-current-page-total-number"]</td>\n
+  <td>2</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_item_number</td>\n
-  <td> - 2 items selected</td>\n
+  <td>//span[@class="listbox-current-item-number"]</td>\n
+  <td>2</td>\n
 </tr>\n
 <!-- reset the filter -->\n
 <tr>\n
@@ -519,27 +519,27 @@ and search parameters are remembered -->\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_record_number</td>\n
-  <td>10 records</td>\n
+  <td>//span[@class="listbox-current-page-total-number"]</td>\n
+  <td>10</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_item_number</td>\n
-  <td> - 2 items selected</td>\n
+  <td>//span[@class="listbox-current-item-number"]</td>\n
+  <td>2</td>\n
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//*[@id="listbox_data_line_0"]//input[@type="checkbox"]</td>\n
+  <td>//*[@class="listbox-data-line-0 DataA"]//input[@type="checkbox"]</td>\n
   <td>on</td>\n
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//*[@id="listbox_data_line_1"]//input[@type="checkbox"]</td>\n
+  <td>//*[@class="listbox-data-line-1 DataB"]//input[@type="checkbox"]</td>\n
   <td>off</td>\n
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//*[@id=\'listbox_data_line_2\']//input[@type="checkbox"]</td>\n
+  <td>//*[@class="listbox-data-line-2 DataA"]//input[@type="checkbox"]</td>\n
   <td>on</td>\n
 </tr>\n
 <tr>\n
diff --git a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testLabelLine.xml b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testLabelLine.xml
index 36a1faccb3cc08758341f5b16686cb1b5ec3430c..f63d3d41f2af28701841d04091a0ba36439ce502 100644
--- a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testLabelLine.xml
+++ b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testLabelLine.xml
@@ -2,10 +2,7 @@
 <ZopeData>
   <record id="1" aka="AAAAAAAAAAE=">
     <pickle>
-      <tuple>
-        <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
-        <tuple/>
-      </tuple>
+      <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
     </pickle>
     <pickle>
       <dictionary>
@@ -57,37 +54,37 @@
 <tal:block metal:use-macro="here/ListBoxZuite_CommonTemplate/macros/init" />\n
 <tr>\n
   <td>verifyElementPresent</td>\n
-  <td>id=listbox_check_all</td>\n
+  <td>//input[@class="listbox-check-all"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementPresent</td>\n
-  <td>id=listbox_uncheck_all</td>\n
+  <td>//input[@class="listbox-uncheck-all"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementPresent</td>\n
-  <td>//tr[@id="listbox_label_line"]</td>\n
+  <td>//tr[@class="listbox-label-line"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[2]</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[2]</td>\n
   <td>ID</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[3]</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[3]</td>\n
   <td>Title</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[4]</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[4]</td>\n
   <td>Quantity</td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[5]</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[5]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
@@ -107,37 +104,37 @@
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_check_all</td>\n
+  <td>//input[@class="listbox-check-all"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_uncheck_all</td>\n
+  <td>//input[@class="listbox-uncheck-all"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementPresent</td>\n
-  <td>//tr[@id="listbox_label_line"]</td>\n
+  <td>//tr[@class="listbox-label-line"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[1]</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[1]</td>\n
   <td>ID</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[2]</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[2]</td>\n
   <td>Title</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[3]</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[3]</td>\n
   <td>Quantity</td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[4]</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[4]</td>\n
   <td></td>\n
 </tr>\n
 </tal:block>\n
diff --git a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testListAction.xml b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testListAction.xml
index cc0266854cbb0e2b60edef41da96b4f0c1fd84b8..b7db9fd113215194da3fa36407583c5a5dcc9267 100644
--- a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testListAction.xml
+++ b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testListAction.xml
@@ -2,10 +2,7 @@
 <ZopeData>
   <record id="1" aka="AAAAAAAAAAE=">
     <pickle>
-      <tuple>
-        <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
-        <tuple/>
-      </tuple>
+      <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
     </pickle>
     <pickle>
       <dictionary>
@@ -56,18 +53,18 @@
 <tal:block metal:use-macro="here/ListBoxZuite_CommonTemplate/macros/init" />\n
 <tr>\n
   <td>assertElementPresent</td>\n
-  <td>id=listbox_title</td>\n
+  <td>//a[@class="listbox_title"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>clickAndWait</td>\n
-  <td>id=listbox_title</td>\n
+  <td>//a[@class="listbox_title"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>assertText</td>\n
-  <td>id=listbox_title</td>\n
-  <td>exact:Contents:</td>\n
+  <td>//a[@class="listbox_title"]</td>\n
+  <td>exact:Contents</td>\n
 </tr>\n
 \n
 <tr>\n
@@ -87,18 +84,18 @@
 </tr>\n
 <tr>\n
   <td>assertElementPresent</td>\n
-  <td>id=listbox_title</td>\n
+  <td>//a[@class="listbox_title"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>clickAndWait</td>\n
-  <td>id=listbox_title</td>\n
+  <td>//a[@class="listbox_title"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>assertText</td>\n
-  <td>id=listbox_title</td>\n
-  <td>exact:Foos:</td>\n
+  <td>//a[@class="listbox_title"]</td>\n
+  <td>exact:Foos</td>\n
 </tr>\n
 </tal:block>\n
 </tbody></table>\n
diff --git a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testMetaTypes.xml b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testMetaTypes.xml
index 1ddc32fecf057eceb32226064a0d1d2c95e5f137..d194c7a52f73d8a08a122e9b56d1fed112b81a44 100644
--- a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testMetaTypes.xml
+++ b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testMetaTypes.xml
@@ -2,10 +2,7 @@
 <ZopeData>
   <record id="1" aka="AAAAAAAAAAE=">
     <pickle>
-      <tuple>
-        <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
-        <tuple/>
-      </tuple>
+      <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
     </pickle>
     <pickle>
       <dictionary>
@@ -88,38 +85,38 @@
 </tr>\n
 <tr>\n
   <td>verifyElementPresent</td>\n
-  <td>id=listbox_data_line_0</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementPresent</td>\n
-  <td>id=listbox_data_line_1</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementPresent</td>\n
-  <td>id=listbox_data_line_2</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_data_line_3</td>\n
+  <td>//tr[@class="listbox-data-line-3 DataB"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//*[@id="listbox_data_line_0"]//a[not(@title)]</td>\n
+  <td>//*[@class="listbox-data-line-0 DataA"]//a[not(@title)]</td>\n
   <td>0</td>\n
 </tr>\n
 <tal:block tal:condition="python: context.TestTool_getSkinName()!=\'Mobile\'">\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[3]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[3]</td>\n
   <td>Title 0</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[4]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[4]</td>\n
   <td>10.0</td>\n
 </tr>\n
 </tal:block>\n
@@ -138,18 +135,18 @@
 \n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//*[@id="listbox_data_line_1"]//a[not(@title)]</td>\n
+  <td>//*[@class="listbox-data-line-1 DataB"]//a[not(@title)]</td>\n
   <td>1</td>\n
 </tr>\n
 <tal:block tal:condition="python: context.TestTool_getSkinName()!=\'Mobile\'">\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[3]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[3]</td>\n
   <td>Title 1</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[4]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[4]</td>\n
   <td>9.0</td>\n
 </tr>\n
 </tal:block>\n
@@ -168,18 +165,18 @@
 \n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//*[@id="listbox_data_line_2"]//a[not(@title)]</td>\n
+  <td>//*[@class="listbox-data-line-2 DataA"]//a[not(@title)]</td>\n
   <td>2</td>\n
 </tr>\n
 <tal:block tal:condition="python: context.TestTool_getSkinName()!=\'Mobile\'">\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[3]</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[3]</td>\n
   <td>Title 2</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[4]</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[4]</td>\n
   <td>8.0</td>\n
 </tr>\n
 </tal:block>\n
@@ -213,7 +210,7 @@
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_data_line_0</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]</td>\n
   <td></td>\n
 </tr>\n
 </tbody></table>\n
diff --git a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testNotExistingSelection.xml b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testNotExistingSelection.xml
index 54d734d811a2e07bb26f39d990facb8c29d972bc..0321d521f082e6a660cddafec4559cb51160eeed 100644
--- a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testNotExistingSelection.xml
+++ b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testNotExistingSelection.xml
@@ -2,10 +2,7 @@
 <ZopeData>
   <record id="1" aka="AAAAAAAAAAE=">
     <pickle>
-      <tuple>
-        <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
-        <tuple/>
-      </tuple>
+      <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
     </pickle>
     <pickle>
       <dictionary>
@@ -89,18 +86,18 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_record_number</td>\n
-  <td>0 records</td>\n
+  <td>//span[@class="listbox-current-page-total-number"]</td>\n
+  <td>0</td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_item_number</td>\n
+  <td>//input[@class="listbox_set_page"]</td>\n
   <td></td>\n
 </tr>\n
 <tal:block tal:condition="python: context.TestTool_getSkinName()!=\'Mobile\'">\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_page_selection</td>\n
+  <td>//button[@class="listbox_next_page"]</td>\n
   <td></td>\n
 </tr> \n
 </tal:block>\n
diff --git a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testPager.xml b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testPager.xml
index 2d4bb3149375bdec82348ca5826de4a302055fbc..123e81536e21325112a38bb754ee395adac9ac69 100644
--- a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testPager.xml
+++ b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testPager.xml
@@ -75,13 +75,13 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_record_number</td>\n
-  <td>3 records</td>\n
+  <td>//span[@class="listbox-current-page-total-number"]</td>\n
+  <td>3</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_item_number</td>\n
-  <td> - 0 items selected</td>\n
+  <td>//span[@class="listbox-current-item-number"]</td>\n
+  <td>0</td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
@@ -100,22 +100,22 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//*[@id="listbox_data_line_0"]//a[not(@title)]</td>\n
+  <td>//*[@class="listbox-data-line-0 DataA"]//a[not(@title)]</td>\n
   <td>0</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//*[@id="listbox_data_line_1"]//a[not(@title)]</td>\n
+  <td>//*[@class="listbox-data-line-1 DataB"]//a[not(@title)]</td>\n
   <td>1</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//*[@id="listbox_data_line_2"]//a[not(@title)]</td>\n
+  <td>//*[@class="listbox-data-line-2 DataA"]//a[not(@title)]</td>\n
   <td>2</td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_data_line_3</td>\n
+  <td>//*[@class="listbox-data-line-3 DataB"]</td>\n
   <td></td>\n
 </tr>\n
 \n
@@ -146,13 +146,13 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_record_number</td>\n
-  <td>10 records</td>\n
+  <td>//span[@class="listbox-current-page-total-number"]</td>\n
+  <td>10</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_item_number</td>\n
-  <td> - 0 items selected</td>\n
+  <td>//span[@class="listbox-current-item-number"]</td>\n
+  <td>0</td>\n
 </tr>\n
 \n
 <tal:block tal:define="prefix string:listbox; \n
@@ -173,22 +173,22 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//*[@id="listbox_data_line_0"]//a[not(@title)]</td>\n
+  <td>//*[@class="listbox-data-line-0 DataA"]//a[not(@title)]</td>\n
   <td>0</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//*[@id="listbox_data_line_1"]//a[not(@title)]</td>\n
+  <td>//*[@class="listbox-data-line-1 DataB"]//a[not(@title)]</td>\n
   <td>1</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//*[@id="listbox_data_line_2"]//a[not(@title)]</td>\n
+  <td>//*[@class="listbox-data-line-2 DataA"]//a[not(@title)]</td>\n
   <td>2</td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_data_line_3</td>\n
+  <td>//*[@class="listbox-data-line-3 DataB"]</td>\n
   <td></td>\n
 </tr>\n
 \n
@@ -216,22 +216,22 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//*[@id="listbox_data_line_0"]//a[not(@title)]</td>\n
+  <td>//*[@class="listbox-data-line-0 DataA"]//a[not(@title)]</td>\n
   <td>3</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//*[@id="listbox_data_line_1"]//a[not(@title)]</td>\n
+  <td>//*[@class="listbox-data-line-1 DataB"]//a[not(@title)]</td>\n
   <td>4</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//*[@id="listbox_data_line_2"]//a[not(@title)]</td>\n
+  <td>//*[@class="listbox-data-line-2 DataA"]//a[not(@title)]</td>\n
   <td>5</td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_data_line_3</td>\n
+  <td>//*[@class="listbox-data-line-3 DataB"]</td>\n
   <td></td>\n
 </tr>\n
 \n
@@ -259,22 +259,22 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//*[@id="listbox_data_line_0"]//a[not(@title)]</td>\n
+  <td>//*[@class="listbox-data-line-0 DataA"]//a[not(@title)]</td>\n
   <td>0</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//*[@id="listbox_data_line_1"]//a[not(@title)]</td>\n
+  <td>//*[@class="listbox-data-line-1 DataB"]//a[not(@title)]</td>\n
   <td>1</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//*[@id="listbox_data_line_2"]//a[not(@title)]</td>\n
+  <td>//*[@class="listbox-data-line-2 DataA"]//a[not(@title)]</td>\n
   <td>2</td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_data_line_3</td>\n
+  <td>//*[@class="listbox-data-line-3 DataB"]</td>\n
   <td></td>\n
 </tr>\n
 \n
@@ -316,12 +316,12 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//*[@id="listbox_data_line_0"]//a[not(@title)]</td>\n
+  <td>//*[@class="listbox-data-line-0 DataA"]//a[not(@title)]</td>\n
   <td>9</td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_data_line_1</td>\n
+  <td>//*[@class="listbox-data-line-1 DataB"]</td>\n
   <td></td>\n
 </tr>\n
 \n
@@ -337,13 +337,13 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_record_number</td>\n
-  <td>9 records</td>\n
+  <td>//span[@class="listbox-current-page-total-number"]</td>\n
+  <td>9</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_item_number</td>\n
-  <td> - 0 items selected</td>\n
+  <td>//span[@class="listbox-current-item-number"]</td>\n
+  <td>0</td>\n
 </tr>\n
 \n
 <tal:block tal:define="prefix string:listbox; \n
@@ -364,22 +364,22 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//*[@id="listbox_data_line_0"]//a[not(@title)]</td>\n
+  <td>//*[@class="listbox-data-line-0 DataA"]//a[not(@title)]</td>\n
   <td>6</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//*[@id="listbox_data_line_1"]//a[not(@title)]</td>\n
+  <td>//*[@class="listbox-data-line-1 DataB"]//a[not(@title)]</td>\n
   <td>7</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//*[@id="listbox_data_line_2"]//a[not(@title)]</td>\n
+  <td>//*[@class="listbox-data-line-2 DataA"]//a[not(@title)]</td>\n
   <td>8</td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_data_line_3</td>\n
+  <td>//*[@class="listbox-data-line-3 DataB"]</td>\n
   <td></td>\n
 </tr>\n
 \n
diff --git a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testPortalTypes.xml b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testPortalTypes.xml
index 116d4c7612bbb5921ff9025c2793f401796ff6b4..e453e12c0dd70275c530c535ad88a8d6db49a590 100644
--- a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testPortalTypes.xml
+++ b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testPortalTypes.xml
@@ -2,10 +2,7 @@
 <ZopeData>
   <record id="1" aka="AAAAAAAAAAE=">
     <pickle>
-      <tuple>
-        <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
-        <tuple/>
-      </tuple>
+      <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
     </pickle>
     <pickle>
       <dictionary>
@@ -88,38 +85,38 @@
 </tr>\n
 <tr>\n
   <td>verifyElementPresent</td>\n
-  <td>id=listbox_data_line_0</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementPresent</td>\n
-  <td>id=listbox_data_line_1</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementPresent</td>\n
-  <td>id=listbox_data_line_2</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_data_line_3</td>\n
+  <td>//tr[@class="listbox-data-line-3 DataB"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//*[@id="listbox_data_line_0"]//a[not(@title)]</td>\n
+  <td>//*[@class="listbox-data-line-0 DataA"]//a[not(@title)]</td>\n
   <td>0</td>\n
 </tr>\n
 <tal:block tal:condition="python: context.TestTool_getSkinName()!=\'Mobile\'">\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[3]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[3]</td>\n
   <td>Title 0</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[4]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[4]</td>\n
   <td>10.0</td>\n
 </tr>\n
 </tal:block>\n
@@ -137,18 +134,18 @@
 </tal:block>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//*[@id="listbox_data_line_1"]//a[not(@title)]</td>\n
+  <td>//*[@class="listbox-data-line-1 DataB"]//a[not(@title)]</td>\n
   <td>1</td>\n
 </tr>\n
 <tal:block tal:condition="python: context.TestTool_getSkinName()!=\'Mobile\'">\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[3]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[3]</td>\n
   <td>Title 1</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[4]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[4]</td>\n
   <td>9.0</td>\n
 </tr>\n
 </tal:block>\n
@@ -166,18 +163,18 @@
 </tal:block>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//*[@id="listbox_data_line_2"]//a[not(@title)]</td>\n
+  <td>//*[@class="listbox-data-line-2 DataA"]//a[not(@title)]</td>\n
   <td>2</td>\n
 </tr>\n
 <tal:block tal:condition="python: context.TestTool_getSkinName()!=\'Mobile\'">\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[3]</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[3]</td>\n
   <td>Title 2</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[4]</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[4]</td>\n
   <td>8.0</td>\n
 </tr>\n
 </tal:block>\n
@@ -210,7 +207,7 @@
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_data_line_0</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]</td>\n
   <td></td>\n
 </tr>\n
 </tbody></table>\n
diff --git a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testQuickSearch.xml b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testQuickSearch.xml
index 91120d5d001bb46f6f61845757f398a23d6b7818..5e22ff7d0743be5a9c9136de2db16756732c6572 100644
--- a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testQuickSearch.xml
+++ b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testQuickSearch.xml
@@ -2,10 +2,7 @@
 <ZopeData>
   <record id="1" aka="AAAAAAAAAAE=">
     <pickle>
-      <tuple>
-        <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
-        <tuple/>
-      </tuple>
+      <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
     </pickle>
     <pickle>
       <dictionary>
@@ -89,27 +86,27 @@
 <tal:block tal:condition="python: context.TestTool_getSkinName()!=\'Mobile\'">\n
 <tr>\n
   <td>verifyEditable</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[2]//input</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[2]//input</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[2]//input</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[2]//input</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementPresent</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[3]</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[3]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[3]//input</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[3]//input</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementPresent</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[4]</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[4]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
@@ -119,7 +116,7 @@
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[5]</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[5]</td>\n
   <td></td>\n
 </tr>\n
 </tal:block>\n
@@ -171,7 +168,7 @@
 <tal:block tal:condition="python: context.TestTool_getSkinName()!=\'Mobile\'">\n
 <tr>\n
   <td>type</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[2]//input</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[2]//input</td>\n
   <td>0</td>\n
 </tr>\n
 <tr>\n
@@ -181,32 +178,32 @@
 </tr>\n
 <tr>\n
   <td>verifyEditable</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[2]//input</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[2]//input</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[2]//input</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[2]//input</td>\n
   <td>0</td>\n
 </tr>\n
 <tr>\n
   <td>verifyEditable</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[3]//input</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[3]//input</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementPresent</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[4]</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[4]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[4]//input</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[4]//input</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[5]</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[5]</td>\n
   <td></td>\n
 </tr>\n
 </tal:block>\n
@@ -249,24 +246,24 @@
 </tal:block>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//*[@id="listbox_data_line_0"]//a[not(@title)]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]//a[not(@title)]</td>\n
   <td>0</td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_data_line_1</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]</td>\n
   <td></td>\n
 </tr>\n
 <!-- Search by title -->\n
 <tal:block tal:condition="python: context.TestTool_getSkinName()!=\'Mobile\'">\n
 <tr>\n
   <td>type</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[3]//input</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[3]//input</td>\n
   <td>T%</td>\n
 </tr>\n
 <tr>\n
   <td>type</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[2]//input</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[2]//input</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
@@ -276,37 +273,37 @@
 </tr>\n
 <tr>\n
   <td>verifyEditable</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[2]//input</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[2]//input</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[2]//input</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[2]//input</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyEditable</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[3]//input</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[3]//input</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[3]//input</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[3]//input</td>\n
   <td>T%</td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementPresent</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[4]</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[4]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[4]//input</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[4]//input</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[5]</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[5]</td>\n
   <td></td>\n
 </tr>\n
 </tal:block>\n
@@ -360,22 +357,22 @@
 \n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//*[@id="listbox_data_line_0"]//a[not(@title)]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]//a[not(@title)]</td>\n
   <td>0</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//*[@id="listbox_data_line_1"]//a[not(@title)]</td>\n
+  <td>//*[@class="listbox-data-line-1 DataB"]//a[not(@title)]</td>\n
   <td>1</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//*[@id="listbox_data_line_2"]//a[not(@title)]</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]//a[not(@title)]</td>\n
   <td>2</td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_data_line_3</td>\n
+  <td>//tr[@class="listbox-data-line-3 DataB"]</td>\n
   <td></td>\n
 </tr>\n
 \n
diff --git a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testQuickSort.xml b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testQuickSort.xml
index f4a61796a2be34186f0c05d94fb4d12549f66c43..6ce5b0092d83646866db27abfc0e07383b545390 100644
--- a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testQuickSort.xml
+++ b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testQuickSort.xml
@@ -2,10 +2,7 @@
 <ZopeData>
   <record id="1" aka="AAAAAAAAAAE=">
     <pickle>
-      <tuple>
-        <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
-        <tuple/>
-      </tuple>
+      <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
     </pickle>
     <pickle>
       <dictionary>
@@ -144,29 +141,29 @@
     <td>//button[@name=\'setSelectionQuickSortOrder:method\' and @value=\'listbox.quantity\']</td>\n
   <td></td>\n
 </tr>\n
-<tr>\n
+<!--<tr>\n
   <td>assertElementNotPresent</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[4]/img</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[3]/button</td>\n
   <td></td>\n
-</tr>\n
+</tr>-->\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]</td>\n
   <td>0</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[2]</td>\n
   <td>1</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[2]</td>\n
   <td>2</td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_data_line_3</td>\n
+  <td>//tr[@class="listbox-data-line-3 DataB"]</td>\n
   <td></td>\n
 </tr>\n
 <!-- click the ID -->\n
@@ -182,12 +179,12 @@
 </tr>\n
 <tr>\n
   <td>assertElementPresent</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[2]/img[@alt="Ascending Display"]</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[2]/button[@title="Ascending Display"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>assertElementNotPresent</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[2]/img[@alt="Descending Display"]</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[2]/button[@title="Descending Display"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
@@ -195,39 +192,39 @@
     <td>//button[@name=\'setSelectionQuickSortOrder:method\' and @value=\'listbox.title\']</td>\n
   <td></td>\n
 </tr>\n
-<tr>\n
+<!--<tr>\n
   <td>assertElementNotPresent</td>\n
   <td>//tr[@id="listbox_label_line"]/td[3]/img</td>\n
   <td></td>\n
-</tr>\n
+</tr>-->\n
 <tr>\n
   <td>assertElementNotPresent</td>\n
     <td>//button[@name=\'setSelectionQuickSortOrder:method\' and @value=\'listbox.quantity\']</td>\n
   <td></td>\n
 </tr>\n
-<tr>\n
+<!--<tr>\n
   <td>assertElementNotPresent</td>\n
   <td>//tr[@id="listbox_label_line"]/td[4]/img</td>\n
   <td></td>\n
-</tr>\n
+</tr>-->\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]</td>\n
   <td>0</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[2]</td>\n
   <td>1</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[2]</td>\n
   <td>2</td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_data_line_3</td>\n
+  <td>//tr[@class="listbox-data-line-3 DataB"]</td>\n
   <td></td>\n
 </tr>\n
 <!-- click the ID again -->\n
@@ -243,12 +240,12 @@
 </tr>\n
 <tr>\n
   <td>assertElementNotPresent</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[2]/img[@alt="Ascending Display"]</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[2]/button[@title="Ascending Display"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>assertElementPresent</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[2]/img[@alt="Descending Display"]</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[2]/button[@title="Descending Display"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
@@ -256,39 +253,39 @@
     <td>//button[@name=\'setSelectionQuickSortOrder:method\' and @value=\'listbox.title\']</td>\n
   <td></td>\n
 </tr>\n
-<tr>\n
+<!--<tr>\n
   <td>assertElementNotPresent</td>\n
   <td>//tr[@id="listbox_label_line"]/td[3]/img</td>\n
   <td></td>\n
-</tr>\n
+</tr>-->\n
 <tr>\n
   <td>assertElementNotPresent</td>\n
     <td>//button[@name=\'setSelectionQuickSortOrder:method\' and @value=\'listbox.quantity\']</td>\n
   <td></td>\n
 </tr>\n
-<tr>\n
+<!--<tr>\n
   <td>assertElementNotPresent</td>\n
   <td>//tr[@id="listbox_label_line"]/td[4]/img</td>\n
   <td></td>\n
-</tr>\n
+</tr>-->\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]</td>\n
   <td>9</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[2]</td>\n
   <td>8</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[2]</td>\n
   <td>7</td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_data_line_3</td>\n
+  <td>//tr[@class="listbox-data-line-3 DataB"]</td>\n
   <td></td>\n
 </tr>\n
 <!-- click the Title -->\n
@@ -302,11 +299,11 @@
     <td>//button[@name=\'setSelectionQuickSortOrder:method\' and @value=\'listbox.id\']</td>\n
   <td></td>\n
 </tr>\n
-<tr>\n
+<!--<tr>\n
   <td>assertElementNotPresent</td>\n
   <td>//tr[@id="listbox_label_line"]/td[2]/img</td>\n
   <td></td>\n
-</tr>\n
+</tr>-->\n
 <tr>\n
   <td>assertElementPresent</td>\n
     <td>//button[@name=\'setSelectionQuickSortOrder:method\' and @value=\'listbox.title\']</td>\n
@@ -314,12 +311,12 @@
 </tr>\n
 <tr>\n
   <td>assertElementPresent</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[3]/img[@alt="Ascending Display"]</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[3]/button[@title="Ascending Display"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>assertElementNotPresent</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[3]/img[@alt="Descending Display"]</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[3]/button[@title="Descending Display"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
@@ -327,29 +324,29 @@
     <td>//button[@name=\'setSelectionQuickSortOrder:method\' and @value=\'listbox.quantity\']</td>\n
   <td></td>\n
 </tr>\n
-<tr>\n
+<!--<tr>\n
   <td>assertElementNotPresent</td>\n
   <td>//tr[@id="listbox_label_line"]/td[4]/img</td>\n
   <td></td>\n
-</tr>\n
+</tr>-->\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]</td>\n
   <td>0</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[2]</td>\n
   <td>1</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[2]</td>\n
   <td>2</td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_data_line_3</td>\n
+  <td>//tr[@class="listbox-data-line-3 DataB"]</td>\n
   <td></td>\n
 </tr>\n
 <!-- click the Title again -->\n
@@ -363,11 +360,11 @@
     <td>//button[@name=\'setSelectionQuickSortOrder:method\' and @value=\'listbox.id\']</td>\n
   <td></td>\n
 </tr>\n
-<tr>\n
+<!--<tr>\n
   <td>assertElementNotPresent</td>\n
   <td>//tr[@id="listbox_label_line"]/td[2]/img</td>\n
   <td></td>\n
-</tr>\n
+</tr>-->\n
 <tr>\n
   <td>assertElementPresent</td>\n
     <td>//button[@name=\'setSelectionQuickSortOrder:method\' and @value=\'listbox.title\']</td>\n
@@ -375,12 +372,12 @@
 </tr>\n
 <tr>\n
   <td>assertElementNotPresent</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[3]/img[@alt="Ascending Display"]</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[3]/button[@title="Ascending Display"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>assertElementPresent</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[3]/img[@alt="Descending Display"]</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[3]/button[@title="Descending Display"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
@@ -388,29 +385,29 @@
     <td>//button[@name=\'setSelectionQuickSortOrder:method\' and @value=\'listbox.quantity\']</td>\n
   <td></td>\n
 </tr>\n
-<tr>\n
+<!--<tr>\n
   <td>assertElementNotPresent</td>\n
   <td>//tr[@id="listbox_label_line"]/td[4]/img</td>\n
   <td></td>\n
-</tr>\n
+</tr>-->\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]</td>\n
   <td>9</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[2]</td>\n
   <td>8</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[2]</td>\n
   <td>7</td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_data_line_3</td>\n
+  <td>//tr[@class="listbox-data-line-3 DataB"]</td>\n
   <td></td>\n
 </tr>\n
 </tal:block>\n
diff --git a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testQuickTranslationSort.xml b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testQuickTranslationSort.xml
index 22b770e712536c5761becbb64f170c8113701cfb..e60bcc642a086eca0b5605408238411245c4a361 100644
--- a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testQuickTranslationSort.xml
+++ b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testQuickTranslationSort.xml
@@ -2,10 +2,7 @@
 <ZopeData>
   <record id="1" aka="AAAAAAAAAAE=">
     <pickle>
-      <tuple>
-        <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
-        <tuple/>
-      </tuple>
+      <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
     </pickle>
     <pickle>
       <dictionary>
@@ -141,27 +138,27 @@
 </tr>\n
 <tr>\n
   <td>assertElementNotPresent</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[2]/img[@alt="Ascending Display"]</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[2]/button[@title="Ascending Display"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>assertElementNotPresent</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[2]/img[@alt="Descending Display"]</td>\n
+  <td>//tr[@class="listbox-label-line"]/td[2]/button[@alt="Descending Display"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]</td>\n
   <td>Draft</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[2]</td>\n
   <td>Validated</td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_data_line_2</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]</td>\n
   <td></td>\n
 </tr>\n
 <!-- click the state -->\n
@@ -177,22 +174,22 @@
 </tr>\n
 <tr>\n
   <td>assertElementPresent</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[2]/img[@alt="Ascending Display"]</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[2]/button[@title="Ascending Display"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>assertElementNotPresent</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[2]/img[@alt="Descending Display"]</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[2]/button[@title="Descending Display"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]</td>\n
   <td>Draft</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[2]</td>\n
   <td>Validated</td>\n
 </tr>\n
 <!-- click the state again -->\n
@@ -208,22 +205,22 @@
 </tr>\n
 <tr>\n
   <td>assertElementNotPresent</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[2]/img[@alt="Ascending Display"]</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[2]/button[@title="Ascending Display"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>assertElementPresent</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[2]/img[@alt="Descending Display"]</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[2]/button[@title="Descending Display"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]</td>\n
   <td>Validated</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[2]</td>\n
   <td>Draft</td>\n
 </tr>\n
 \n
@@ -288,27 +285,27 @@
 </tr>\n
 <tr>\n
   <td>assertElementNotPresent</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[2]/img[@alt="Ascending Display"]</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[2]/button[@title="Ascending Display"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>assertElementNotPresent</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[2]/img[@alt="Descending Display"]</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[2]/button[@title="Descending Display"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]</td>\n
   <td>Vraft</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[2]</td>\n
   <td>Dalidated</td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_data_line_2</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]</td>\n
   <td></td>\n
 </tr>\n
 <!-- click the state -->\n
@@ -324,22 +321,22 @@
 </tr>\n
 <tr>\n
   <td>assertElementPresent</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[2]/img[@alt="Ascending Display"]</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[2]/button[@title="Ascending Display"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>assertElementNotPresent</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[2]/img[@alt="Descending Display"]</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[2]/button[@title="Descending Display"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]</td>\n
   <td>Dalidated</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[2]</td>\n
   <td>Vraft</td>\n
 </tr>\n
 <!-- click the state again -->\n
@@ -355,22 +352,22 @@
 </tr>\n
 <tr>\n
   <td>assertElementNotPresent</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[2]/img[@alt="Ascending Display"]</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[2]/button[@title="Ascending Display"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>assertElementPresent</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[2]/img[@alt="Descending Display"]</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[2]/button[@title="Descending Display"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]</td>\n
   <td>Vraft</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[2]</td>\n
   <td>Dalidated</td>\n
 </tr>\n
 <!-- Restore english language -->\n
diff --git a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testRedirect.xml b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testRedirect.xml
index eeb28c88c20ba5ebaed6c6ce27b498a2b365ecfb..ba392291683cecfff09c647359a49d5130e45c82 100644
--- a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testRedirect.xml
+++ b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testRedirect.xml
@@ -97,7 +97,7 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[2]/button/span</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[2]/button</td>\n
   <td>Title</td>\n
 </tr>\n
 <tr>\n
@@ -140,8 +140,8 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_record_number</td>\n
-  <td>10 records</td>\n
+  <td>//span[@class="listbox-current-page-total-number"]</td>\n
+  <td>10</td>\n
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
@@ -150,17 +150,17 @@
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[1]//input[@type="text"]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[1]//input[@type="text"]</td>\n
   <td>0</td>\n
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[1]//input[@type="text"]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[1]//input[@type="text"]</td>\n
   <td>1</td>\n
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[1]//input[@type="text"]</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[1]//input[@type="text"]</td>\n
   <td>2</td>\n
 </tr>\n
 <tr>\n
@@ -186,8 +186,8 @@
 <!-- Go to last and verify -->\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_record_number</td>\n
-  <td>10 records</td>\n
+  <td>//span[@class="listbox-current-page-total-number"]</td>\n
+  <td>10</td>\n
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
@@ -196,17 +196,17 @@
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[1]//input[@type="text"]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[1]//input[@type="text"]</td>\n
   <td>3</td>\n
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[1]//input[@type="text"]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[1]//input[@type="text"]</td>\n
   <td>4</td>\n
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[1]//input[@type="text"]</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[1]//input[@type="text"]</td>\n
   <td>5</td>\n
 </tr>\n
 <tr>\n
@@ -237,8 +237,8 @@
 <!-- Go to previous and verify -->\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_record_number</td>\n
-  <td>10 records</td>\n
+  <td>//span[@class="listbox-current-page-total-number"]</td>\n
+  <td>10</td>\n
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
@@ -247,7 +247,7 @@
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[1]//input[@type="text"]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[1]//input[@type="text"]</td>\n
   <td>9</td>\n
 </tr>\n
 <tr>\n
@@ -273,8 +273,8 @@
 <!-- Go to first and verify -->\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_record_number</td>\n
-  <td>10 records</td>\n
+  <td>//span[@class="listbox-current-page-total-number"]</td>\n
+  <td>10</td>\n
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
@@ -283,17 +283,17 @@
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[1]//input[@type="text"]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[1]//input[@type="text"]</td>\n
   <td>6</td>\n
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[1]//input[@type="text"]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[1]//input[@type="text"]</td>\n
   <td>7</td>\n
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[1]//input[@type="text"]</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[1]//input[@type="text"]</td>\n
   <td>8</td>\n
 </tr>\n
 <tr>\n
@@ -323,8 +323,8 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_record_number</td>\n
-  <td>10 records</td>\n
+  <td>//span[@class="listbox-current-page-total-number"]</td>\n
+  <td>10</td>\n
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
@@ -333,17 +333,17 @@
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[1]//input[@type="text"]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[1]//input[@type="text"]</td>\n
   <td>0</td>\n
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[1]//input[@type="text"]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[1]//input[@type="text"]</td>\n
   <td>1</td>\n
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[1]//input[@type="text"]</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[1]//input[@type="text"]</td>\n
   <td>2</td>\n
 </tr>\n
 \n
@@ -375,7 +375,7 @@
 </tr>\n
 <tr>\n
   <td>clickAndWait</td>\n
-  <td>id=listbox_domain_tree_mode</td>\n
+  <td>//input[@class="listbox-tree-domain-tree-mode"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
@@ -385,18 +385,18 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[1]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[1]//a[@class="tree-closed"]</td>\n
   <td>a</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[2]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[2]//a[@class="tree-closed"]</td>\n
   <td>b</td>\n
 </tr>\n
 <!-- Click on "+ a" link -->\n
 <tr>\n
   <td>clickAndWait</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[1]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[1]//a[@class="tree-closed"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
@@ -406,22 +406,22 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[1]//a[@class="tree_open"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[1]//a[@class="tree-open"]</td>\n
   <td>a</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[2]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[2]//a[@class="tree-closed"]</td>\n
   <td>a1</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[3]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[3]//a[@class="tree-closed"]</td>\n
   <td>a2</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//table[@id="listbox_domain_tree_table"]//tr[4]//a[@class="tree_closed"]</td>\n
+  <td>//table[@class="listbox-table-domain-tree"]//tr[4]//a[@class="tree-closed"]</td>\n
   <td>b</td>\n
 </tr>\n
 <!-- END of inspired code -->\n
diff --git a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testReportTree.xml b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testReportTree.xml
index c87f8216083da1ed72244b626c45955cce317daf..0c7fdc47a742cd4f856f8c8ccb7dd39c43cc725a 100644
--- a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testReportTree.xml
+++ b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testReportTree.xml
@@ -93,7 +93,7 @@
 </tr>\n
 <tr>\n
   <td>clickAndWait</td>\n
-  <td>id=listbox_report_tree_mode</td>\n
+  <td>//input[@class="listbox-tree-report-tree-mode"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
@@ -103,28 +103,58 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[1]</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[1]</td>\n
   <td>Foo Category*</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[3]</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[3]</td>\n
   <td>ID</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[4]</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[4]</td>\n
   <td>Title</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[5]</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[5]</td>\n
   <td>Quantity</td>\n
 </tr>\n
-<tr>\n
+<!--<tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[1]</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[1]</td>\n
   <td>0 1 2 3 4 5 - Hide</td>\n
+</tr>-->\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>1</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>2</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>3</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>4</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>5</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>Hide</td>\n
+  <td></td>\n
 </tr>\n
 <!-- Click on Hide -->\n
 <tr>\n
@@ -132,50 +162,80 @@
   <td>link=Hide</td>\n
   <td></td>\n
 </tr>\n
-<tr>\n
+<!--<tr>\n
   <td>verifyText</td>\n
   <td>//tr[@id="listbox_search_line"]/td[1]</td>\n
   <td>0 1 2 3 4 5 - Show</td>\n
+</tr>-->\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>1</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>2</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>3</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>4</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>5</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>Show</td>\n
+  <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[1]/a[@class="tree_closed"]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[1]/a[@class="tree-closed"]</td>\n
   <td>a</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[3]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[3]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[1]/a[@class="tree_closed"]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[1]/a[@class="tree-closed"]</td>\n
   <td>b</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[2]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[3]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[3]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_data_line_2</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_record_number</td>\n
-  <td>2 records</td>\n
+  <td>//span[@class="listbox-current-page-total-number"]</td>\n
+  <td>2</td>\n
 </tr>\n
 <!-- Click on + a -->\n
 <tr>\n
@@ -190,58 +250,58 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[1]/a[@class="tree_open"]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[1]/a[@class="tree-open"]</td>\n
   <td>a</td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementPresent</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]/input</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]/input</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[3]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[3]</td>\n
   <td>0</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[1]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[1]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementPresent</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[2]/input</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[2]/input</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[3]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[3]</td>\n
   <td>4</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[1]</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[1]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementPresent</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[2]/input</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[2]/input</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[3]</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[3]</td>\n
   <td>8</td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_data_line_3</td>\n
+  <td>//tr[@class="listbox-data-line-3 DataB"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_record_number</td>\n
-  <td>6 records</td>\n
+  <td>//span[@class="listbox-current-page-total-number"]</td>\n
+  <td>6</td>\n
 </tr>\n
 <!-- Go to next page -->\n
 <tr>\n
@@ -256,58 +316,61 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[1]/a[@class="tree_closed"]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[1]/a[@class="tree-closed"]</td>\n
   <td>a1</td>\n
 </tr>\n
-<tr>\n
+<!--<tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]/input</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]/input</td>\n
   <td></td>\n
-</tr>\n
+  <td>it exists</td>\n
+</tr>-->\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[3]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[3]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[1]/a[@class="tree_closed"]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[1]/a[@class="tree-closed"]</td>\n
   <td>a2</td>\n
 </tr>\n
-<tr>\n
+<!--<tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[2]/input</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[2]/input</td>\n
   <td></td>\n
-</tr>\n
+  <td>it exists</td>\n
+</tr>-->\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[3]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[3]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[1]/a[@class="tree_closed"]</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[1]/a[@class="tree-closed"]</td>\n
   <td>b</td>\n
 </tr>\n
-<tr>\n
+<!--<tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[2]/input</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[2]/input</td>\n
   <td></td>\n
-</tr>\n
+  <td>it exists</td>\n
+</tr>-->\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[3]</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[3]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_data_line_3</td>\n
+  <td>//tr[@class="listbox-data-line-3 DataB"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_record_number</td>\n
-  <td>6 records</td>\n
+  <td>//span[@class="listbox-current-page-total-number"]</td>\n
+  <td>6</td>\n
 </tr>\n
 <!-- Show all the 1st level -->\n
 <tr>\n
@@ -322,58 +385,60 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[1]/a[@class="tree_closed"]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[1]/a[@class="tree-closed"]</td>\n
   <td>a1</td>\n
 </tr>\n
-<tr>\n
+<!--<tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]/input</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]/input</td>\n
   <td></td>\n
-</tr>\n
+  <td>it exists</td>\n
+</tr>-->\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[3]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[3]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[1]/a[@class="tree_closed"]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[1]/a[@class="tree-closed"]</td>\n
   <td>a2</td>\n
 </tr>\n
-<tr>\n
+<!--<tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[2]/input</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[2]/input</td>\n
   <td></td>\n
-</tr>\n
+  <td>it exists</td>\n
+</tr>-->\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[3]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[3]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[1]/a[@class="tree_open"]</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[1]/a[@class="tree-open"]</td>\n
   <td>b</td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementPresent</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[2]/input</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[2]/input</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[3]</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[3]</td>\n
   <td>1</td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_data_line_3</td>\n
+  <td>//tr[@class="listbox-data-line-3 DataB"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_record_number</td>\n
-  <td>8 records</td>\n
+  <td>//span[@class="listbox-current-page-total-number"]</td>\n
+  <td>8</td>\n
 </tr>\n
 <!-- Go to next page -->\n
 <tr>\n
@@ -388,43 +453,43 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[1]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[1]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementPresent</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]/input</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]/input</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[3]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[3]</td>\n
   <td>5</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[1]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[1]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementPresent</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[2]/input</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[2]/input</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[3]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[3]</td>\n
   <td>9</td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_data_line_2</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_record_number</td>\n
-  <td>8 records</td>\n
+  <td>//span[@class="listbox-current-page-total-number"]</td>\n
+  <td>8</td>\n
 </tr>\n
 <!-- Test an empty report tree -->\n
 <tr>\n
@@ -439,13 +504,13 @@
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_data_line_0</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_record_number</td>\n
-  <td>0 records</td>\n
+  <td>//span[@class="listbox-current-page-total-number"]</td>\n
+  <td>0</td>\n
 </tr>\n
 </tal:block>\n
 \n
diff --git a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testReportTreeWithStatMethod.xml b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testReportTreeWithStatMethod.xml
index da914aba06afa5cdefe8dc5bef5428d604bfee1d..134696b4a4346b5ef8ba57f466611cae358d8f5d 100644
--- a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testReportTreeWithStatMethod.xml
+++ b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testReportTreeWithStatMethod.xml
@@ -93,7 +93,7 @@
 </tr>\n
 <tr>\n
   <td>clickAndWait</td>\n
-  <td>id=listbox_report_tree_mode</td>\n
+  <td>//input[@class="listbox-tree-report-tree-mode"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
@@ -103,68 +103,98 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[1]</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[1]</td>\n
   <td>Foo Domain</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[3]</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[3]</td>\n
   <td>ID</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[4]</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[4]</td>\n
   <td>Title</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_label_line"]/td[5]</td>\n
+  <td>//tr[@class="listbox-label-line"]/th[5]</td>\n
   <td>Quantity</td>\n
 </tr>\n
-<tr>\n
+<!--<tr>\n
   <td>verifyText</td>\n
   <td>//tr[@id="listbox_search_line"]/td[1]</td>\n
   <td>0 1 2 3 4 5 - Hide</td>\n
+</tr>-->\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>1</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>2</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>3</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>4</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>5</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>Hide</td>\n
+  <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[1]/a[@class="tree_closed"]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[1]/a[@class="tree-closed"]</td>\n
   <td>a</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[3]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[3]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[1]/a[@class="tree_closed"]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[1]/a[@class="tree-closed"]</td>\n
   <td>b</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[2]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[3]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[3]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_data_line_2</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_record_number</td>\n
-  <td>2 records</td>\n
+  <td>//span[@class="listbox-current-page-total-number"]</td>\n
+  <td>2</td>\n
 </tr>\n
 <!-- Click on + a -->\n
 <tr>\n
@@ -179,58 +209,58 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[1]/a[@class="tree_open"]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[1]/a[@class="tree-open"]</td>\n
   <td>a</td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]/input</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]/input</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[3]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[3]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[1]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[1]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementPresent</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[2]/input</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[2]/input</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[3]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[3]</td>\n
   <td>0</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[1]</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[1]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementPresent</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[2]/input</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[2]/input</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[3]</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[3]</td>\n
   <td>4</td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_data_line_3</td>\n
+  <td>//tr[@class="listbox-data-line-3 DataB"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_record_number</td>\n
-  <td>7 records</td>\n
+  <td>//span[@class="listbox-current-page-total-number"]</td>\n
+  <td>7</td>\n
 </tr>\n
 <!-- Go to next page -->\n
 <tr>\n
@@ -245,58 +275,58 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[1]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[1]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementPresent</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]/input</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]/input</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[3]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[3]</td>\n
   <td>8</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[1]/a[@class="tree_closed"]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[1]/a[@class="tree-closed"]</td>\n
   <td>a1</td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[2]/input</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[2]/input</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[3]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[3]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[1]/a[@class="tree_closed"]</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[1]/a[@class="tree-closed"]</td>\n
   <td>a2</td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[2]/input</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[2]/input</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[3]</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[3]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_data_line_3</td>\n
+  <td>//tr[@class="listbox-data-line-3 DataB"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_record_number</td>\n
-  <td>7 records</td>\n
+  <td>//span[@class="listbox-current-page-total-number"]</td>\n
+  <td>7</td>\n
 </tr>\n
 <!-- Show all the 1st level -->\n
 <tr>\n
@@ -311,58 +341,58 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[1]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[1]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementPresent</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]/input</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]/input</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[3]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[3]</td>\n
   <td>8</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[1]/a[@class="tree_closed"]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[1]/a[@class="tree-closed"]</td>\n
   <td>a1</td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[2]/input</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[2]/input</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[3]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[3]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[1]/a[@class="tree_closed"]</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[1]/a[@class="tree-closed"]</td>\n
   <td>a2</td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[2]/input</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[2]/input</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[3]</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[3]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_data_line_3</td>\n
+  <td>//tr[@class="listbox-data-line-3 DataB"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_record_number</td>\n
-  <td>10 records</td>\n
+  <td>//span[@class="listbox-current-page-total-number"]</td>\n
+  <td>10</td>\n
 </tr>\n
 <!-- Go to next page -->\n
 <tr>\n
@@ -377,58 +407,58 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[1]/a[@class="tree_open"]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[1]/a[@class="tree-open"]</td>\n
   <td>b</td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]/input</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]/input</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[3]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[3]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[1]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[1]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementPresent</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[2]/input</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[2]/input</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[3]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[3]</td>\n
   <td>1</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[1]</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[1]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementPresent</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[2]/input</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[2]/input</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[3]</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[3]</td>\n
   <td>5</td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_data_line_3</td>\n
+  <td>//tr[@class="listbox-data-line-3 DataB"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_record_number</td>\n
-  <td>10 records</td>\n
+  <td>//span[@class="listbox-current-page-total-number"]</td>\n
+  <td>10</td>\n
 </tr>\n
 <!-- Hide documents -->\n
 <tr>\n
@@ -441,35 +471,65 @@
   <td>report_root_url</td>\n
   <td>Foo Domain</td>\n
 </tr>\n
-<tr>\n
+<!--<tr>\n
   <td>verifyText</td>\n
   <td>//tr[@id="listbox_search_line"]/td[1]</td>\n
   <td>0 1 2 3 4 5 - Show</td>\n
+</tr>-->\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>1</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>2</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>3</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>4</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>5</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>Show</td>\n
+  <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[1]/a[@class="tree_open"]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[1]/a[@class="tree-open"]</td>\n
   <td>b</td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]/input</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]/input</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[3]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[3]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_data_line_1</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_record_number</td>\n
-  <td>4 records</td>\n
+  <td>//span[@class="listbox-current-page-total-number"]</td>\n
+  <td>4</td>\n
 </tr>\n
 <!-- Still very far from complete. Closing a tree should be tested, sorting should be tested. -->\n
 </tal:block>\n
diff --git a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testRequestParametersSearch.xml b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testRequestParametersSearch.xml
index f1a3190e19db8e54bdd889a633ca0572a509cf2b..2e0df8b49506a5d9cc0d6cec95f86652953c5a0a 100644
--- a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testRequestParametersSearch.xml
+++ b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testRequestParametersSearch.xml
@@ -2,10 +2,7 @@
 <ZopeData>
   <record id="1" aka="AAAAAAAAAAE=">
     <pickle>
-      <tuple>
-        <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
-        <tuple/>
-      </tuple>
+      <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
     </pickle>
     <pickle>
       <dictionary>
@@ -87,14 +84,14 @@
 -->\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>listbox_record_number</td>\n
-  <td>1 records</td>\n
+  <td>//span[@class="listbox-current-page-total-number"]</td>\n
+  <td>1</td>\n
 </tr>\n
 \n
 <tal:block tal:condition="python: context.TestTool_getSkinName()!=\'Mobile\'">\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[3]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[3]</td>\n
   <td>Title 0</td>\n
 </tr>\n
 </tal:block>\n
@@ -120,13 +117,13 @@
 -->\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>listbox_record_number</td>\n
-  <td>1 records</td>\n
+  <td>//span[@class="listbox-current-page-total-number"]</td>\n
+  <td>1</td>\n
 </tr>\n
 <tal:block tal:condition="python: context.TestTool_getSkinName()!=\'Mobile\'">\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[3]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[3]</td>\n
   <td>Title 1</td>\n
 </tr>\n
 </tal:block>\n
@@ -155,18 +152,18 @@ XXX what should we display in the field in that case ?\n
 -->\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>listbox_record_number</td>\n
-  <td>2 records</td>\n
+  <td>//span[@class="listbox-current-page-total-number"]</td>\n
+  <td>2</td>\n
 </tr>\n
 <tal:block tal:condition="python: context.TestTool_getSkinName()!=\'Mobile\'">\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[3]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[3]</td>\n
   <td>Title 0</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[3]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[3]</td>\n
   <td>Title 1</td>\n
 </tr>\n
 </tal:block>\n
@@ -192,8 +189,8 @@ XXX what should we display in the field in that case ?\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>listbox_record_number</td>\n
-  <td>10 records</td>\n
+  <td>//span[@class="listbox-current-page-total-number"]</td>\n
+  <td>10</td>\n
 </tr>\n
 \n
 </tbody></table>\n
diff --git a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testSearchAndSortOnDateColumn.xml b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testSearchAndSortOnDateColumn.xml
index 3e5da346ecbdadd89d042aa219f86afd9e42fb8d..44faea1566a4e8418c512f6c02262dd142c3e661 100644
--- a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testSearchAndSortOnDateColumn.xml
+++ b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testSearchAndSortOnDateColumn.xml
@@ -2,10 +2,7 @@
 <ZopeData>
   <record id="1" aka="AAAAAAAAAAE=">
     <pickle>
-      <tuple>
-        <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
-        <tuple/>
-      </tuple>
+      <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
     </pickle>
     <pickle>
       <dictionary>
@@ -91,18 +88,18 @@
 </tr>\n
 <tr>\n
   <td>verifyEditable</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[2]//input</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[2]//input</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[2]//input</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[2]//input</td>\n
   <td></td>\n
 </tr>\n
 <!-- Search -->\n
 <tr>\n
   <td>type</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[2]//input</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[2]//input</td>\n
   <td>2001/01/01</td>\n
 </tr>\n
 <tr>\n
@@ -112,17 +109,17 @@
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[2]//input</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[2]//input</td>\n
   <td>2001/01/01</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_record_number</td>\n
-  <td>1 records</td>\n
+  <td>//span[@class="listbox-current-page-total-number"]</td>\n
+  <td>1</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]</td>\n
   <td>2001/01/01</td>\n
 </tr>\n
 \n
@@ -140,17 +137,17 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]</td>\n
   <td>2001/01/01</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[2]</td>\n
   <td>2002/02/02</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[2]</td>\n
   <td>2003/03/03</td>\n
 </tr>\n
 <!-- DESC -->\n
@@ -161,24 +158,24 @@
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]</td>\n
   <td>2003/03/03</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[2]</td>\n
   <td>2002/02/02</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[2]</td>\n
   <td>2001/01/01</td>\n
 </tr>\n
 \n
 <!-- Compare Search -->\n
 <tr>\n
   <td>type</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[2]//input</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[2]//input</td>\n
   <td>>=2002/01/01</td>\n
 </tr>\n
 <tr>\n
@@ -188,29 +185,29 @@
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[2]//input</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[2]//input</td>\n
   <td>>=2002/01/01</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_record_number</td>\n
-  <td>2 records</td>\n
+  <td>//span[@class="listbox-current-page-total-number"]</td>\n
+  <td>2</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]</td>\n
   <td>2003/03/03</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[2]</td>\n
   <td>2002/02/02</td>\n
 </tr>\n
 \n
 <!-- Wrong Search Expression -->\n
 <tr>\n
   <td>type</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[2]//input</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[2]//input</td>\n
   <td>>=</td>\n
 </tr>\n
 <tr>\n
@@ -225,22 +222,22 @@
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[2]//input</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[2]//input</td>\n
   <td>>=2002/01/01</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_record_number</td>\n
-  <td>2 records</td>\n
+  <td>//span[@class="listbox-current-page-total-number"]</td>\n
+  <td>2</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]</td>\n
   <td>2003/03/03</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[2]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[2]</td>\n
   <td>2002/02/02</td>\n
 </tr>\n
 \n
diff --git a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testSearchLine.xml b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testSearchLine.xml
index 3e32fbecb1b67670fdfa536ead09ab45ff57af07..3bd0e54f17570396257cb650a6192b10af9c3ae7 100644
--- a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testSearchLine.xml
+++ b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testSearchLine.xml
@@ -2,10 +2,7 @@
 <ZopeData>
   <record id="1" aka="AAAAAAAAAAE=">
     <pickle>
-      <tuple>
-        <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
-        <tuple/>
-      </tuple>
+      <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
     </pickle>
     <pickle>
       <dictionary>
@@ -58,44 +55,44 @@
 </tr>\n
 <tr>\n
   <td>verifyElementPresent</td>\n
-  <td>//*[@id="listbox_search_line"]</td>\n
+  <td>//*[@class="listbox-search-line"]</td>\n
   <td></td>\n
 </tr>\n
 \n
 <tal:block tal:condition="python: context.TestTool_getSkinName()!=\'Mobile\'">\n
 <tr>\n
   <td>verifyEditable</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[2]//input</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[2]//input</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[2]//input</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[2]//input</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyEditable</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[3]//input</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[3]//input</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[3]//input</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[3]//input</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[4]//input</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[4]//input</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementPresent</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[4]</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[4]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[5]</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[5]</td>\n
   <td></td>\n
 </tr>\n
 </tal:block>\n
@@ -156,43 +153,43 @@
 </tal:block>\n
 <tr>\n
   <td>verifyElementPresent</td>\n
-  <td>//*[@id="listbox_search_line"]</td>\n
+  <td>//*[@class="listbox-search-line"]</td>\n
   <td></td>\n
 </tr>\n
 <tal:block tal:condition="python: context.TestTool_getSkinName()!=\'Mobile\'">\n
 <tr>\n
   <td>verifyEditable</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[1]//input</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[1]//input</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[1]//input</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[1]//input</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyEditable</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[2]//input</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[2]//input</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[2]//input</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[2]//input</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementPresent</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[3]</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[3]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[3]//input</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[3]//input</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>//tr[@id="listbox_search_line"]/td[4]</td>\n
+  <td>//tr[@class="listbox-search-line"]/th[4]</td>\n
   <td></td>\n
 </tr>\n
 </tal:block>\n
@@ -250,7 +247,7 @@
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>//*[@id="listbox_search_line"]</td>\n
+  <td>//*[@class="listbox-search-line"]</td>\n
   <td></td>\n
 </tr>\n
 \n
diff --git a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testSelectionCheckedUids.xml b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testSelectionCheckedUids.xml
index f31f346019362507934b3c5bb59e790f1276da82..00085a9ed8dd604cda8c6da84b49ab1f11c2770b 100644
--- a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testSelectionCheckedUids.xml
+++ b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testSelectionCheckedUids.xml
@@ -2,10 +2,7 @@
 <ZopeData>
   <record id="1" aka="AAAAAAAAAAE=">
     <pickle>
-      <tuple>
-        <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
-        <tuple/>
-      </tuple>
+      <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
     </pickle>
     <pickle>
       <dictionary>
@@ -91,7 +88,7 @@ selection\'s checked uids are set to the uids of the filtered objects. -->\n
 </tr>\n
 <tr>\n
   <td>click</td>\n
-  <td>//*[@id="listbox_data_line_1"]//input[@type="checkbox"]</td>\n
+  <td>//*[@class="listbox-data-line-1 DataB"]//input[@type="checkbox"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
@@ -131,12 +128,12 @@ uids.\n
 </tr>\n
 <tr>\n
   <td>click</td>\n
-  <td>//*[@id="listbox_data_line_1"]//input[@type="checkbox"]</td>\n
+  <td>//*[@class="listbox-data-line-1 DataB"]//input[@type="checkbox"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>click</td>\n
-  <td>//*[@id="listbox_data_line_2"]//input[@type="checkbox"]</td>\n
+  <td>//*[@class="listbox-data-line-2 DataA"]//input[@type="checkbox"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
@@ -175,12 +172,12 @@ only have selected uids.\n
 </tr>\n
 <tr>\n
   <td>click</td>\n
-  <td>//*[@id="listbox_data_line_1"]//input[@type="checkbox"]</td>\n
+  <td>//*[@class="listbox-data-line-1 DataB"]//input[@type="checkbox"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>click</td>\n
-  <td>//*[@id="listbox_data_line_2"]//input[@type="checkbox"]</td>\n
+  <td>//*[@class="listbox-data-line-2 DataA"]//input[@type="checkbox"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
@@ -191,7 +188,7 @@ only have selected uids.\n
 <tr>\n
   <td>click</td>\n
   <!-- unselect 1 -->\n
-  <td>//*[@id="listbox_data_line_0"]//input[@type="checkbox"]</td>\n
+  <td>//*[@class="listbox-data-line-0 DataA"]//input[@type="checkbox"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
diff --git a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testTitleLine.xml b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testTitleLine.xml
index 1706d9afe1c2ecee8a902c0290b5d474312d0ff3..4aa9660247ce9d167ac2fe6186095a2abf902227 100644
--- a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testTitleLine.xml
+++ b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testTitleLine.xml
@@ -2,10 +2,7 @@
 <ZopeData>
   <record id="1" aka="AAAAAAAAAAE=">
     <pickle>
-      <tuple>
-        <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
-        <tuple/>
-      </tuple>
+      <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
     </pickle>
     <pickle>
       <dictionary>
@@ -57,47 +54,47 @@
 <tal:block metal:use-macro="here/ListBoxZuite_CommonTemplate/macros/init" />\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_title</td>\n
-  <td>exact:Foos:</td>\n
+  <td>//a[@class="listbox_title"]</td>\n
+  <td>exact:Foos</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_record_number</td>\n
-  <td>0 records</td>\n
+  <td>//span[@class="listbox-current-page-total-number"]</td>\n
+  <td>0</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_item_number</td>\n
-  <td> - 0 items selected</td>\n
+  <td>//span[@class="listbox-current-item-number"]</td>\n
+  <td>0</td>\n
 </tr>\n
-<tr>\n
+<!--<tr>\n
   <td>verifyElementNotPresent</td>\n
   <td>id=listbox_page_selection</td>\n
   <td></td>\n
-</tr>\n
+</tr>-->\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_next_page</td>\n
+  <td>//button[@class="listbox_next_page"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_previous_page</td>\n
+  <td>//button[@class="listbox_previous_page"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_flat_list_mode</td>\n
+  <td>//input[@class="listbox-tree-flat-list-mode"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_domain_tree_mode</td>\n
+  <td>//input[@class="listbox-tree-domain-tree-mode"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_report_tree_mode</td>\n
+  <td>//input[@class="listbox-tree-report-tree-mode"]</td>\n
   <td></td>\n
 </tr>\n
 \n
@@ -118,17 +115,17 @@
 </tr>\n
 <tr>\n
   <td>verifyElementPresent</td>\n
-  <td>id=listbox_flat_list_mode</td>\n
+  <td>//input[@class="listbox-tree-flat-list-mode"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementPresent</td>\n
-  <td>id=listbox_domain_tree_mode</td>\n
+  <td>//input[@class="listbox-tree-domain-tree-mode"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_report_tree_mode</td>\n
+  <td>//input[@class="listbox-tree-report-tree-mode"]</td>\n
   <td></td>\n
 </tr>\n
 \n
@@ -149,17 +146,17 @@
 </tr>\n
 <tr>\n
   <td>verifyElementPresent</td>\n
-  <td>id=listbox_flat_list_mode</td>\n
+  <td>//input[@class="listbox-tree-flat-list-mode"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_domain_tree_mode</td>\n
+  <td>//input[@class="listbox-tree-domain-tree-mode"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementPresent</td>\n
-  <td>id=listbox_report_tree_mode</td>\n
+  <td>//input[@class="listbox-tree-report-tree-mode"]</td>\n
   <td></td>\n
 </tr>\n
 </tal:block>\n
diff --git a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testUrlColumns.xml b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testUrlColumns.xml
index 3a760674792ed31c529db1f9e5db45fa090b11e1..6b6683e896587d2cd518572c247c861102ed8359 100644
--- a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testUrlColumns.xml
+++ b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testUrlColumns.xml
@@ -2,10 +2,7 @@
 <ZopeData>
   <record id="1" aka="AAAAAAAAAAE=">
     <pickle>
-      <tuple>
-        <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
-        <tuple/>
-      </tuple>
+      <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
     </pickle>
     <pickle>
       <dictionary>
@@ -89,32 +86,32 @@
 <tal:block tal:condition="python: context.TestTool_getSkinName()!=\'Mobile\'">\n
 <tr>\n
   <td>verifyAttribute</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]//a@href</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]//a@href</td>\n
   <td>0</td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[3]//a</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[3]//a</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyAttribute</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[2]//a@href</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[2]//a@href</td>\n
   <td>1</td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[3]//a</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[3]//a</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyAttribute</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[2]//a@href</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[2]//a@href</td>\n
   <td>2</td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[3]//a</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[3]//a</td>\n
   <td></td>\n
 </tr>\n
 </tal:block>\n
diff --git a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testViewMode.xml b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testViewMode.xml
index 11c34b9ed9c374667f770efbeb9e50bbdb7971c9..e569219af2fb8e1fc2b757d232648b6675c893d6 100644
--- a/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testViewMode.xml
+++ b/bt5/erp5_ui_test/PathTemplateItem/portal_tests/listbox_zuite/testViewMode.xml
@@ -91,18 +91,18 @@
 <tal:block tal:condition="python: context.TestTool_getSkinName()!=\'Mobile\'">\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_title</td>\n
-  <td>Foo Lines:</td>\n
+  <td>//a[@class="listbox_title"]</td>\n
+  <td>Foo Lines</td>\n
 </tr>\n
 </tal:block>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>id=listbox_record_number</td>\n
-  <td>10 records</td>\n
+  <td>//span[@class="listbox-current-page-total-number"]</td>\n
+  <td>10</td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_item_number</td>\n
+  <td>//span[@class="listbox-current-item-number"]</td>\n
   <td></td>\n
 </tr>\n
 <!-- \n
@@ -130,33 +130,33 @@
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_flat_list_mode</td>\n
+  <td>//input[@class="listbox-tree-flat-list-mode"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_domain_tree_mode</td>\n
+  <td>//input[@class="listbox-tree-domain-tree-mode"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyElementNotPresent</td>\n
-  <td>id=listbox_report_tree_mode</td>\n
+  <td>//input[@class="listbox-tree-report-tree-mode"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//*[@id="listbox_data_line_0"]//input[@type="text"][1]</td>\n
+  <td>//*[@class="listbox-data-line-0 DataA"]//input[@type="text"][1]</td>\n
   <td>0</td>\n
 </tr>\n
 <tr>\n
   <td>verifyEditable</td>\n
-  <td>//*[@id="listbox_data_line_0"]//input[@type="text"][1]</td>\n
+  <td>//*[@class="listbox-data-line-0 DataA"]//input[@type="text"][1]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <tal:block tal:condition="python: context.TestTool_getSkinName()!=\'Mobile\'">\n
   <td>verifyValue</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]//input[@type="text"]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]//input[@type="text"]</td>\n
   <td>Title 0</td> \n
   </tal:block>\n
   <tal:block tal:condition="python: context.TestTool_getSkinName()==\'Mobile\'">\n
@@ -167,23 +167,23 @@
 </tr>\n
 <tr>\n
   <td>verifyEditable</td>\n
-  <td>//*[@id="listbox_data_line_0"]//input[@type="text"][2]</td>\n
+  <td>//*[@class="listbox-data-line-0 DataA"]//input[@type="text"][2]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//*[@id="listbox_data_line_1"]//input[@type="text"][1]</td>\n
+  <td>//*[@class="listbox-data-line-1 DataB"]//input[@type="text"][1]</td>\n
   <td>1</td>\n
 </tr>\n
 <tr>\n
   <td>verifyEditable</td>\n
-  <td>//*[@id="listbox_data_line_1"]//input[@type="text"][1]</td>\n
+  <td>//*[@class="listbox-data-line-1 DataB"]//input[@type="text"][1]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <tal:block tal:condition="python: context.TestTool_getSkinName()!=\'Mobile\'">\n
   <td>verifyValue</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[2]//input[@type="text"]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[2]//input[@type="text"]</td>\n
   <td>Title 1</td> \n
   </tal:block>\n
   <tal:block tal:condition="python: context.TestTool_getSkinName()==\'Mobile\'">\n
@@ -194,23 +194,23 @@
 </tr>\n
 <tr>\n
   <td>verifyEditable</td>\n
-  <td>//*[@id="listbox_data_line_1"]//input[@type="text"][2]</td>\n
+  <td>//*[@class="listbox-data-line-1 DataB"]//input[@type="text"][2]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//*[@id="listbox_data_line_2"]//input[@type="text"][1]</td>\n
+  <td>//*[@class="listbox-data-line-2 DataA"]//input[@type="text"][1]</td>\n
   <td>2</td>\n
 </tr>\n
 <tr>\n
   <td>verifyEditable</td>\n
-  <td>//*[@id="listbox_data_line_2"]//input[@type="text"][1]</td>\n
+  <td>//*[@class="listbox-data-line-2 DataA"]//input[@type="text"][1]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
  <tal:block tal:condition="python: context.TestTool_getSkinName()!=\'Mobile\'">\n
   <td>verifyValue</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[2]//input[@type="text"]</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[2]//input[@type="text"]</td>\n
   <td>Title 2</td> \n
   </tal:block>\n
   <tal:block tal:condition="python: context.TestTool_getSkinName()==\'Mobile\'">\n
@@ -221,7 +221,7 @@
 </tr>\n
 <tr>\n
   <td>verifyEditable</td>\n
-  <td>//*[@id="listbox_data_line_2"]//input[@type="text"][2]</td>\n
+  <td>//*[@class="listbox-data-line-2 DataA"]//input[@type="text"][2]</td>\n
   <td></td>\n
 </tr>\n
 <!-- Go to next page -->\n
@@ -249,18 +249,18 @@
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//*[@id="listbox_data_line_0"]//input[@type="text"][1]</td>\n
+  <td>//*[@class="listbox-data-line-0 DataA"]//input[@type="text"][1]</td>\n
   <td>3</td>\n
 </tr>\n
 <tr>\n
   <td>verifyEditable</td>\n
-  <td>//*[@id="listbox_data_line_0"]//input[@type="text"][1]</td>\n
+  <td>//*[@class="listbox-data-line-0 DataA"]//input[@type="text"][1]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <tal:block tal:condition="python: context.TestTool_getSkinName()!=\'Mobile\'">\n
   <td>verifyValue</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]//input[@type="text"]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]//input[@type="text"]</td>\n
   <td>Title 3</td> \n
   </tal:block>\n
   <tal:block tal:condition="python: context.TestTool_getSkinName()==\'Mobile\'">\n
@@ -271,23 +271,23 @@
 </tr>\n
 <tr>\n
   <td>verifyEditable</td>\n
-  <td>//*[@id="listbox_data_line_0"]//input[@type="text"][2]</td>\n
+  <td>//*[@class="listbox-data-line-0 DataA"]//input[@type="text"][2]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//*[@id="listbox_data_line_1"]//input[@type="text"][1]</td>\n
+  <td>//*[@class="listbox-data-line-1 DataB"]//input[@type="text"][1]</td>\n
   <td>4</td>\n
 </tr>\n
 <tr>\n
   <td>verifyEditable</td>\n
-  <td>//*[@id="listbox_data_line_1"]//input[@type="text"][1]</td>\n
+  <td>//*[@class="listbox-data-line-1 DataB"]//input[@type="text"][1]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <tal:block tal:condition="python: context.TestTool_getSkinName()!=\'Mobile\'">\n
   <td>verifyValue</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[2]//input[@type="text"]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[2]//input[@type="text"]</td>\n
   <td>Title 4</td> \n
   </tal:block>\n
   <tal:block tal:condition="python: context.TestTool_getSkinName()==\'Mobile\'">\n
@@ -298,23 +298,23 @@
 </tr>\n
 <tr>\n
   <td>verifyEditable</td>\n
-  <td>//*[@id="listbox_data_line_1"]//input[@type="text"][2]</td>\n
+  <td>//*[@class="listbox-data-line-1 DataB"]//input[@type="text"][2]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//*[@id="listbox_data_line_2"]//input[@type="text"][1]</td>\n
+  <td>//*[@class="listbox-data-line-2 DataA"]//input[@type="text"][1]</td>\n
   <td>5</td>\n
 </tr>\n
 <tr>\n
   <td>verifyEditable</td>\n
-  <td>//*[@id="listbox_data_line_2"]//input[@type="text"][1]</td>\n
+  <td>//*[@class="listbox-data-line-2 DataA"]//input[@type="text"][1]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <tal:block tal:condition="python: context.TestTool_getSkinName()!=\'Mobile\'">\n
   <td>verifyValue</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[2]//input[@type="text"]</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[2]//input[@type="text"]</td>\n
   <td>Title 5</td> \n
   </tal:block>\n
   <tal:block tal:condition="python: context.TestTool_getSkinName()==\'Mobile\'">\n
@@ -325,19 +325,19 @@
 </tr>\n
 <tr>\n
   <td>verifyEditable</td>\n
-  <td>//*[@id="listbox_data_line_2"]//input[@type="text"][2]</td>\n
+  <td>//*[@class="listbox-data-line-2 DataA"]//input[@type="text"][2]</td>\n
   <td></td>\n
 </tr>\n
 <!-- Edit some values -->\n
 <tr>\n
   <td>type</td>\n
-  <td>//*[@id="listbox_data_line_0"]//input[@type="text"][1]</td>\n
+  <td>//*[@class="listbox-data-line-0 DataA"]//input[@type="text"][1]</td>\n
   <td>31</td>\n
 </tr>\n
 <tr>\n
   <tal:block tal:condition="python: context.TestTool_getSkinName()!=\'Mobile\'">\n
   <td>type</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]//input[@type="text"]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]//input[@type="text"]</td>\n
   <td>Another Title 3</td> \n
   </tal:block>\n
   <tal:block tal:condition="python: context.TestTool_getSkinName()==\'Mobile\'">\n
@@ -348,7 +348,7 @@
 </tr>\n
 <tr>\n
   <td>type</td>\n
-  <td>//*[@id="listbox_data_line_1"]//input[@type="text"][1]</td>\n
+  <td>//*[@class="listbox-data-line-1 DataB"]//input[@type="text"][1]</td>\n
   <td>9999999</td>\n
 </tr>\n
 <tr>\n
@@ -375,18 +375,18 @@
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//*[@id="listbox_data_line_0"]//input[@type="text"][1]</td>\n
+  <td>//*[@class="listbox-data-line-0 DataA"]//input[@type="text"][1]</td>\n
   <td>31</td>\n
 </tr>\n
 <tr>\n
   <td>verifyEditable</td>\n
-  <td>//*[@id="listbox_data_line_0"]//input[@type="text"][1]</td>\n
+  <td>//*[@class="listbox-data-line-0 DataA"]//input[@type="text"][1]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <tal:block tal:condition="python: context.TestTool_getSkinName()!=\'Mobile\'">\n
   <td>verifyValue</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[2]//input[@type="text"]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[2]//input[@type="text"]</td>\n
   <td>Another Title 3</td> \n
   </tal:block>\n
   <tal:block tal:condition="python: context.TestTool_getSkinName()==\'Mobile\'">\n
@@ -397,23 +397,23 @@
 </tr>\n
 <tr>\n
   <td>verifyEditable</td>\n
-  <td>//*[@id="listbox_data_line_0"]//input[@type="text"][2]</td>\n
+  <td>//*[@class="listbox-data-line-0 DataA"]//input[@type="text"][2]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//*[@id="listbox_data_line_1"]//input[@type="text"][1]</td>\n
+  <td>//*[@class="listbox-data-line-1 DataB"]//input[@type="text"][1]</td>\n
   <td>5</td>\n
 </tr>\n
 <tr>\n
   <td>verifyEditable</td>\n
-  <td>//*[@id="listbox_data_line_1"]//input[@type="text"][1]</td>\n
+  <td>//*[@class="listbox-data-line-1 DataB"]//input[@type="text"][1]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <tal:block tal:condition="python: context.TestTool_getSkinName()!=\'Mobile\'">\n
   <td>verifyValue</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[2]//input[@type="text"]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[2]//input[@type="text"]</td>\n
   <td>Title 5</td> \n
   </tal:block>\n
   <tal:block tal:condition="python: context.TestTool_getSkinName()==\'Mobile\'">\n
@@ -424,23 +424,23 @@
 </tr>\n
 <tr>\n
   <td>verifyEditable</td>\n
-  <td>//*[@id="listbox_data_line_1"]//input[@type="text"][2]</td>\n
+  <td>//*[@class="listbox-data-line-1 DataB"]//input[@type="text"][2]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//*[@id="listbox_data_line_2"]//input[@type="text"][1]</td>\n
+  <td>//*[@class="listbox-data-line-2 DataA"]//input[@type="text"][1]</td>\n
   <td>6</td>\n
 </tr>\n
 <tr>\n
   <td>verifyEditable</td>\n
-  <td>//*[@id="listbox_data_line_2"]//input[@type="text"][1]</td>\n
+  <td>//*[@class="listbox-data-line-2 DataA"]//input[@type="text"][1]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <tal:block tal:condition="python: context.TestTool_getSkinName()!=\'Mobile\'">\n
   <td>verifyValue</td>\n
-  <td>//tr[@id="listbox_data_line_2"]/td[2]//input[@type="text"]</td>\n
+  <td>//tr[@class="listbox-data-line-2 DataA"]/td[2]//input[@type="text"]</td>\n
   <td>Title 6</td> \n
   </tal:block>\n
   <tal:block tal:condition="python: context.TestTool_getSkinName()==\'Mobile\'">\n
@@ -451,7 +451,7 @@
 </tr>\n
 <tr>\n
   <td>verifyEditable</td>\n
-  <td>//*[@id="listbox_data_line_2"]//input[@type="text"][2]</td>\n
+  <td>//*[@class="listbox-data-line-2 DataA"]//input[@type="text"][2]</td>\n
   <td></td>\n
 </tr>\n
 \n
@@ -459,22 +459,22 @@
 <tal:block tal:condition="python: context.TestTool_getSkinName()!=\'Mobile\'">\n
 <tr>\n
   <td>type</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[3]//input[@type="text"]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[3]//input[@type="text"]</td>\n
   <td>abc</td>\n
 </tr>\n
 <tr>\n
   <td>type</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[4]/input[1]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[4]/input[1]</td>\n
   <td>yyyy</td>\n
 </tr>\n
 <tr>\n
   <td>type</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[4]/input[2]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[4]/input[2]</td>\n
   <td>mm</td>\n
 </tr>\n
 <tr>\n
   <td>type</td>\n
-  <td>//*[@id="listbox_data_line_1"]/td[4]/input[3]</td>\n
+  <td>//*[@class="listbox-data-line-1 DataB"]/td[4]/input[3]</td>\n
   <td>dd</td>\n
 </tr>\n
 </tal:block>\n
@@ -509,54 +509,54 @@
 <tal:block tal:condition="python: context.TestTool_getSkinName()!=\'Mobile\'">\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[3]//input[@type="text"]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[3]//input[@type="text"]</td>\n
   <td>abc</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[3]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[3]</td>\n
   <td>*You did not enter a floating point*</td>\n
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[4]/input[1]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[4]/input[1]</td>\n
   <td>yyyy</td>\n
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[4]/input[2]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[4]/input[2]</td>\n
   <td>mm</td>\n
 </tr>\n
 <tr>\n
   <td>verifyValue</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[4]/input[3]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[4]/input[3]</td>\n
   <td>dd</td>\n
 </tr>\n
 <tr>\n
   <td>verifyText</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[4]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[4]</td>\n
   <td>*You did not enter a valid date and time.*</td>\n
 </tr>\n
 \n
 <!-- cleanup and save not to trigger unbefore unload -->\n
 <tr>\n
   <td>type</td>\n
-  <td>//tr[@id="listbox_data_line_0"]/td[3]//input[@type="text"]</td>\n
+  <td>//tr[@class="listbox-data-line-0 DataA"]/td[3]//input[@type="text"]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>type</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[4]/input[1]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[4]/input[1]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>type</td>\n
-  <td>//tr[@id="listbox_data_line_1"]/td[4]/input[2]</td>\n
+  <td>//tr[@class="listbox-data-line-1 DataB"]/td[4]/input[2]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>type</td>\n
-  <td>//*[@id="listbox_data_line_1"]/td[4]/input[3]</td>\n
+  <td>//*[@class="listbox-data-line-1 DataB"]/td[4]/input[3]</td>\n
   <td></td>\n
 </tr>\n
 </tal:block>\n
diff --git a/bt5/erp5_ui_test/bt/revision b/bt5/erp5_ui_test/bt/revision
index ed615204d1f10f12c716d53b21557ddfa0f104c0..25802a20038d64f3d8a67c217ce49cac10c4fc33 100644
--- a/bt5/erp5_ui_test/bt/revision
+++ b/bt5/erp5_ui_test/bt/revision
@@ -1 +1 @@
-590
\ No newline at end of file
+592
\ No newline at end of file