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

nobody at svn.erp5.org nobody at svn.erp5.org
Thu Mar 31 07:30:18 CEST 2011


Author: arnaud.fontaine
Date: Thu Mar 31 07:30:18 2011
New Revision: 44857

URL: http://svn.erp5.org?rev=44857&view=rev
Log:
Exclude hidden elements when looking in a listbox cell and don't allow
only input elements when getting a listbox control

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=44857&r1=44856&r2=44857&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] Thu Mar 31 07:30:18 2011
@@ -314,9 +314,10 @@ class Browser(ExtendedTestBrowser):
   def getListboxLink(self, line_number, column_number, cell_element_index=1,
                      *args, **kwargs):
     """
-    Follow the link at the given position. In case there are several
-    links within a cell, C{cell_element_index} allows to select which
-    one to get (starting from 1).
+    Follow the link at the given position, excluding any link whose
+    class is hidden. In case there are several links within a cell,
+    C{cell_element_index} allows to select which one to get (starting
+    from 1).
 
     @param line_number: Line number of the link
     @type line_number: int
@@ -331,11 +332,12 @@ class Browser(ExtendedTestBrowser):
     @return: C{Link} at the given line and column number
     @rtype: L{zope.testbrowser.interfaces.ILink}
     """
-    xpath_str = '%s//tr[%d]//%s[%d]//a[%d]' % (self._listbox_table_xpath_str,
-                                               line_number,
-                                               line_number <= 2 and 'th' or 'td',
-                                               column_number,
-                                               cell_element_index)
+    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',
+         column_number,
+         cell_element_index)
 
     # xpath() method always return a list even if there is only one element
     element_list = self.etree.xpath(xpath_str)
@@ -683,8 +685,9 @@ class ContextMainForm(MainForm):
                         *args, **kwargs):
     """
     Get the control located at line and column numbers (both starting
-    from 1). The position of a cell from a column or line number can
-    be obtained through calling
+    from 1), excluding hidden control and those whose class is hidden
+    too. The position of a cell from a column or line number can be
+    obtained through calling
     L{erp5.utils.test_browser.browser.Browser.getListboxPosition}.
 
     Also, there may be several elements within a cell, thus
@@ -704,7 +707,8 @@ class ContextMainForm(MainForm):
     @return: The control found at the given line and column numbers
     @rtype: L{zope.testbrowser.interfaces.IControl}
     """
-    xpath_str = '%s//tr[%d]//%s[%d]/input[%d]' % \
+    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'),



More information about the Erp5-report mailing list