Selenium-rc Python client : Not able to iterate through the xpath?
I am a newbie to Selenium and is implementing selenium-rc with Python client library. I tried traversing through my page's div using xpath(s) elements using the command "sel.get_xpath_count(xpath)".
It gives a count of 20, but when I iterate through every div using for statement and command "sel.get_text(xpath='%s[%d]'%(xpath, i))", but it only finds the first element a开发者_Python百科nd give a error on the remaining 19 saying divs not found.
Your second XPath expression is wrong. Programmers trained in C-style languages frequently make this mistake, because they see [...]
and think "index into an array", but that's not what brackets do in XPath.
If you use sel.get_xpath_count(something)
, then you need to use sel.get_text("xpath=(something)[item_number]")
. Note the use of parentheses around the original XPath expression in the second use.
The reason behind this is that something[item_count]
is short-hand for something AND position() = item_count
- thus you wind up adding another predicate to the "something" expression, instead of selecting one of the nodes selected by the expression. (something)[item_count]
works because the value of (something)
is a list of nodes, and adding a position() = item_count
selects the node from the list with the specified position. That's more like a C-style array.
精彩评论