[Erp5-report] r44973 arnaud.fontaine - /erp5/trunk/utils/erp5.utils.test_browser/src/erp5/u...

nobody at svn.erp5.org nobody at svn.erp5.org
Fri Apr 1 08:49:36 CEST 2011


Author: arnaud.fontaine
Date: Fri Apr  1 08:49:36 2011
New Revision: 44973

URL: http://svn.erp5.org?rev=44973&view=rev
Log:
In an XPATH expression, the position is context-relative, thus fix
listboxes accordingly as the cells are either in a <thead> or <tbody>

Modified:
    erp5/trunk/utils/erp5.utils.test_browser/src/erp5/utils/test_browser/browser.py

Modified: erp5/trunk/utils/erp5.utils.test_browser/src/erp5/utils/test_browser/browser.py
URL: http://svn.erp5.org/erp5/trunk/utils/erp5.utils.test_browser/src/erp5/utils/test_browser/browser.py?rev=44973&r1=44972&r2=44973&view=diff
==============================================================================
--- erp5/trunk/utils/erp5.utils.test_browser/src/erp5/utils/test_browser/browser.py [utf8] (original)
+++ erp5/trunk/utils/erp5.utils.test_browser/src/erp5/utils/test_browser/browser.py [utf8] Fri Apr  1 08:49:36 2011
@@ -360,10 +360,20 @@ class Browser(ExtendedTestBrowser):
     @raise LookupError: No link could be found at the given position
                         and cell indexes
     """
+    # With XPATH, the position is context-dependent, therefore, as
+    # there the cells are either within a <thead> or <tbody>, the line
+    # number must be shifted by the number of header lines (namely 2)
+    if line_number <= 2:
+      relative_line_number = line_number
+      column_type = 'th'
+    else:
+      relative_line_number = line_number - 2
+      column_type = 'td'
+
     xpath_str = '%s//tr[%d]//%s[%d]//a[not(contains(@class, "hidden"))][%d]' % \
         (self._listbox_table_xpath_str,
-         line_number,
-         line_number <= 2 and 'th' or 'td',
+         relative_line_number,
+         column_type,
          column_number,
          cell_element_index)
 
@@ -415,8 +425,19 @@ class Browser(ExtendedTestBrowser):
       column_or_line_xpath_str = "%s | %s" % (xpath_str_fmt % 'th',
                                               xpath_str_fmt % 'td')
     else:
+      # With XPATH, the position is context-dependent, therefore, as
+      # there the cells are either within a <thead> or <tbody>, the
+      # line number must be shifted by the number of header lines
+      # (namely 2)
+      if line_number <= 2:
+        relative_line_number = line_number
+        column_type = 'th'
+      else:
+        relative_line_number = line_number - 2
+        column_type = 'td'
+
       column_or_line_xpath_str = self._listbox_table_xpath_str + '//tr[%d]//%s' %\
-          (line_number, line_number <= 2 and 'th' or 'td')
+          (relative_line_number, column_type)
 
     cell_list = self.etree.xpath(column_or_line_xpath_str)
 
@@ -780,11 +801,18 @@ class ContextMainForm(MainForm):
     @raise LookupError: No control could be found at the given
                         position and cell indexes
     """
+    if line_number <= 2:
+      relative_line_number = line_number
+      column_type = 'th'
+    else:
+      relative_line_number = line_number - 2
+      column_type = 'td'
+
     xpath_str = '%s//tr[%d]//%s[%d]/*[not(@type="hidden") and ' \
         'not(contains(@class, "hidden"))][%d]' % \
         (self.browser._listbox_table_xpath_str,
-         line_number,
-         (line_number <= 2 and u'th' or u'td'),
+         relative_line_number,
+         column_type,
          column_number,
          cell_element_index)
 



More information about the Erp5-report mailing list