如何在Selenium中访问具有相同类名的第二个元素

10 投票
3 回答
29545 浏览
提问于 2025-04-18 07:21

我在我的网页上有两个元素,它们的类名是一样的,我想访问第二个元素,但我做不到。我试过用[position=1],还在我的xpath表达式后面加了[1]

driver.find_element_by_xpath("//div[@class='tableType value']")

上面的代码返回了这两个元素

我还试过

driver.find_element_by_xpath("//div[@class='tableType value']")[1]
driver.find_element_by_xpath("//div[@class='tableType value'][position=1]")

有人能帮我一下吗?

谢谢

3 个回答

-1

你需要使用:

driver.find_elements(by, value)

或者

driver.find_elements_by_class_name(name)

举个例子:

elements = driver.find_elements(By.CLASS_NAME, 'something')
elements[0].click()
elements[1].click()
3

你好,下面的代码可以用来点击第二个具有相同类名的元素。这里的[1]表示你想点击第二个元素,[2]表示你想点击第三个元素,依此类推。

driver.find_elements_by_class_name('classname')[1].click()

17

使用

driver.find_element_by_xpath("(//div[@class='tableType value'])[2]")

或者

driver.find_element_by_xpath("(//div[@class='tableType value'])[position()=2]")

XPath的计数是从1开始的,所以第二个元素的位置是 position() 2

撰写回答