How to access non-first matches with xpath in Selenium RC ?

Posted by Gj on Stack Overflow See other posts from Stack Overflow or by Gj
Published on 2010-06-13T06:21:18Z Indexed on 2010/06/13 6:22 UTC
Read the original article Hit count: 335

Filed under:
|
|
|

I have 20 labels in my page:

In [85]: sel.get_xpath_count("//label")
Out[85]: u'20'

And I can get the first one be default:

In [86]: sel.get_text("xpath=//label")
Out[86]: u'First label:'

But, unlike the xpath docs I've found, I'm getting an error trying to subscript the xpath to get to the second label's text:

In [87]: sel.get_text("xpath=//label[2]")
ERROR: An unexpected error occurred while tokenizing input
The following traceback may be corrupted or invalid
The error message is: ('EOF in multi-line statement', (216, 0))

ERROR: An unexpected error occurred while tokenizing input
The following traceback may be corrupted or invalid
The error message is: ('EOF in multi-line statement', (1186, 0))

---------------------------------------------------------------------------
Exception                                 Traceback (most recent call last)

/Users/me/<ipython console> in <module>()

/Users/me/selenium.pyc in get_text(self, locator)
   1187         'locator' is an element locator
   1188         """
-> 1189         return self.get_string("getText", [locator,])
   1190 
   1191 

/Users/me/selenium.pyc in get_string(self, verb, args)
    217 
    218     def get_string(self, verb, args):
--> 219         result = self.do_command(verb, args)
    220         return result[3:]
    221 

/Users/me/selenium.pyc in do_command(self, verb, args)
    213         #print "Selenium Result: " + repr(data) + "\n\n"

    214         if (not data.startswith('OK')):
--> 215             raise Exception, data
    216         return data
    217 

Exception: ERROR: Element xpath=//label[2] not found

What gives?

© Stack Overflow or respective owner

Related posts about python

Related posts about xpath