[Erp5-report] r44458 vincent - /erp5/trunk/utils/erp5mechanize/ERP5Mechanize.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Mon Mar 21 11:05:53 CET 2011
Author: vincent
Date: Mon Mar 21 11:05:53 2011
New Revision: 44458
URL: http://svn.erp5.org?rev=44458&view=rev
Log:
Update to newest listbox renderer.
- use table element to locate a listbox
- use listbox-table class instead of ListContent
- listbox title row uses "th", not "td"
Modified:
erp5/trunk/utils/erp5mechanize/ERP5Mechanize.py
Modified: erp5/trunk/utils/erp5mechanize/ERP5Mechanize.py
URL: http://svn.erp5.org/erp5/trunk/utils/erp5mechanize/ERP5Mechanize.py?rev=44458&r1=44457&r2=44458&view=diff
==============================================================================
--- erp5/trunk/utils/erp5mechanize/ERP5Mechanize.py [utf8] (original)
+++ erp5/trunk/utils/erp5mechanize/ERP5Mechanize.py [utf8] Mon Mar 21 11:05:53 2011
@@ -453,9 +453,9 @@ class ERP5Mechanize:
"""
from xml.dom.minidom import parseString
document = parseString(self.getHtml().get_data())
- for element in document.getElementsByTagName(u'div'):
+ for element in document.getElementsByTagName(u'table'):
if element.attributes.get(u'class') is not None and\
- element.attributes.get(u'class').value == u'ListContent':
+ u'listbox-table' in element.attributes.get(u'class').value:
# XXX: Hardcoded class name
return element
return None
@@ -468,9 +468,13 @@ class ERP5Mechanize:
XXX: what if there is more than one field in a cell ?
"""
+ if line_number == 0:
+ cell_type = u'th'
+ else:
+ cell_type = u'td'
self.fillField(str(self._getListbox()\
.getElementsByTagName(u'tr')[line_number]\
- .getElementsByTagName(u'td')[column_number]\
+ .getElementsByTagName(cell_type)[column_number]\
.getElementsByTagName(u'input')[0].attributes[u'name'].value)
, value)
@@ -494,8 +498,10 @@ class ERP5Mechanize:
"""
line_list = self._getListbox().getElementsByTagName(u'tr')
for line_pos in xrange(len(line_list)):
- for child in line_list[line_pos].getElementsByTagName(u'td')\
- [column_number].childNodes:
+ cell_list = line_list[line_pos].getElementsByTagName(u'td')
+ if len(cell_list) == 0:
+ continue
+ for child in cell_list[column_number].childNodes:
if self.match(child, value, strict):
return line_pos
return None
@@ -505,8 +511,11 @@ class ERP5Mechanize:
Returns the position number of the first column
containing given text at given line, None if not found.
"""
- column_list = self._getListbox().getElementsByTagName(u'tr')\
- [line_number].getElementsByTagName(u'td')
+ if line_number == 0:
+ cell_type = u'th'
+ else:
+ cell_type = u'td'
+ column_list = self._getListbox().getElementsByTagName(u'tr')[line_number].getElementsByTagName(cell_type)
for cell_pos in xrange(len(column_list)):
for child in column_list[cell_pos].childNodes:
if self.match(child, value, strict):
@@ -519,9 +528,13 @@ class ERP5Mechanize:
XXX: what if there is more than one link ?
"""
+ if line_number == 0:
+ cell_type = u'th'
+ else:
+ cell_type = u'td'
return self.timeOpen(str(self._getListbox()\
.getElementsByTagName(u'tr')[line_number]\
- .getElementsByTagName(u'td')[column_number]\
+ .getElementsByTagName(cell_type)[column_number]\
.getElementsByTagName(u'a')[0].attributes[u'href'].value))
def doListboxAction(self):
More information about the Erp5-report
mailing list