def multiselect(self, window_name, object_name, row_text_list, partial_match=False):
object_handle = self._get_object_handle(window_name, object_name)<EOL>if not object_handle.AXEnabled:<EOL><INDENT>raise LdtpServerException(u"<STR_LIT>" % object_name)<EOL><DEDENT>object_handle.activate()<EOL>selected = False<EOL>try:<EOL><INDENT>window = self._get_front_most_window()<EOL><DEDENT>except (IndexError,):<EOL><INDENT>window = self._get_any_window()<EOL><DEDENT>for row_text in row_text_list:<EOL><INDENT>selected = False<EOL>for cell in object_handle.AXRows:<EOL><INDENT>parent_cell = cell<EOL>cell = self._getfirstmatchingchild(cell, "<STR_LIT>")<EOL>if not cell:<EOL><INDENT>continue<EOL><DEDENT>if re.match(row_text, cell.AXValue):<EOL><INDENT>selected = True<EOL>if not parent_cell.AXSelected:<EOL><INDENT>x, y, width, height = self._getobjectsize(parent_cell)<EOL>window.clickMouseButtonLeftWithMods((x + width / <NUM_LIT:2>,<EOL>y + height / <NUM_LIT:2>),<EOL>['<STR_LIT>'])<EOL>self.wait(<NUM_LIT:0.5>)<EOL><DEDENT>else:<EOL><INDENT>pass<EOL><DEDENT>break<EOL><DEDENT><DEDENT>if not selected:<EOL><INDENT>raise LdtpServerException(u"<STR_LIT>" % row_text)<EOL><DEDENT><DEDENT>if not selected:<EOL><INDENT>raise LdtpServerException(u"<STR_LIT>")<EOL><DEDENT>return <NUM_LIT:1><EOL>
Select multiple row

@param window_name: Window name to type in, either full name,
LDTP's name convention, or a Unix glob.
@type window_name: string
@param object_name: Object name to type in, either full name,
LDTP's name convention, or a Unix glob. 
@type object_name: string
@param row_text_list: Row list with matching text to select
@type row_text: string

@return: 1 on success.
@rtype: integer