[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