开发者

Selenium-rc Python client : Not able to iterate through the xpath?

开发者 https://www.devze.com 2023-03-02 23:43 出处:网络
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)\"

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.

0

精彩评论

暂无评论...
验证码 换一张
取 消