我正在寻找在Selenium中获取下一个元素的通用方法。 Jquery有一个.next()函数和重载来允许给定的类型,所以我想可能有一个基于JS的解决方案可用于selenium。
鉴于它是如此有用的功能,我想象有人必须已经完成它。
干杯, 杰米
答案 0 :(得分:5)
我会假设你选择一个选择元素(比如By.className("primary")
),你想要获得具有该类名的下一个项目?
为此,您需要致电driver.findElements(By.className("primary"))
。这将为您提供与该选择器匹配的所有元素的列表。然后,您可以选择适合您需求的任何一个。
但是,如果next()实际上返回了下一个兄弟,那么你可以这样做:
(用选择器替换元素)
答案 1 :(得分:1)
导航到同一层次结构下的元素的一种可能方法是在xpath中使用/../
,如下所示:
current_element = driver.find_element_by_xpath('//android.widget.RelativeLayout/android.widget.TextView[@text="Current element text"]/../android.widget.TextView[@text="Next element text"]')
在这里:
android.widget.TextView[@text = "Current element text"]
android.widget.RelativeLayout
,并选择同一层次结构下的下一个android.widget.TextView[@text="Next element text"]
。