2

I am doing an xpath search

page = driver.find_element_by_xpath('//td[@class="mceIframeContainer mceFirst mceLast"]')[1]

This gives me the first class item which I need, in firebug, but apparently python won't allow me to add the [1] to the find function. Is there any workaround? The search returns 2 items, I only want one. Am I approaching this wrong?

4

2 回答 2

13

像大多数 Selenium WebDriver 绑定一样,如果您只指定“元素”,您将只返回第一个找到的元素。但是,如果您在方法中指定“元素”,它将返回找到的元素数组。

所以你的代码应该是:

page = driver.find_elements_by_xpath('//td[@class="mceIframeContainer mceFirst mceLast"]')[1]

请参阅http://selenium.googlecode.com/svn/trunk/docs/api/py/webdriver_remote/selenium.webdriver.remote.webdriver.html?highlight=find_element_by_xpath#selenium.webdriver.remote.webdriver.WebDriver.find_elements_by_xpath

于 2013-05-22T21:49:56.423 回答
1

[1] 需要添加到字符串的一部分

例如,对于网页上的一堆相同表单,第一个 xpath 可能是

/html/body/form/table/tbody/tr[1]/td[2]/input

第二个是

/html/body/form/table/tbody/tr[2]/td[2]/input

或者你可以用它find_elements_by_xpath代替,然后它们可以find_element***s***_by_xpath用 S来索引

于 2013-05-22T21:48:36.070 回答