2010-06-13 33 views
0

我有我的第20个标签:如何在Selenium RC中访问与xpath的非首次匹配?

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

,我可以得到第一个是默认:

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

但是,不像我已经找到了XPath的文档,我发现了一个错误尝试下标xpath以获得第二个标签的文本:

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 

什么给?

回答

3

用途:

(//label)[2]

XPath表达式您目前正在使用:

//label[2]

表示:

在文档中选择每个label元素,该元素是其父项的第二个子项label。机会是文件中的每个label只是其父项的第一个也是唯一的label子项。在这种情况下,上述表达式不会选择任何内容

+0

非常感谢! – 2010-06-13 17:38:46

相关问题