如何在selenium中处理重复的对象?

时间:2016-06-07 10:51:07

标签: selenium selenium-webdriver

我想发送特定字段的值

我在this网站上发现Password个定位符值相同。

如何处理具有相同idnametagname等的相同对象?

2 个答案:

答案 0 :(得分:1)

你可以这样找到它们:

  • 第一个:

<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="80dp" android:layout_height="80dp" > <RelativeLayout android:layout_width="80dp" android:layout_height="80dp" android:paddingBottom="5dp" android:paddingLeft="5dp" android:paddingRight="0dp" android:paddingTop="5dp" > <TextView android:id="@+id/some_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="SOme Text" /> </RelativeLayout> </FrameLayout>

  • 第二个:

driver.findElement(By.xpath("//form[@id='loginForm']/div/div/input[@id='password']")

使用该解决方案,即使在您要查找的密码之前添加了其他id =密码,您也一定会找到正确的元素。

答案 1 :(得分:0)

您可以使用List<WebElement>创建“相同ID,名称,标记名”的元素列表,并执行以下索引操作:

 List <WebElement> elements = driver.<your locator strategy>;
 for (int i = 0; i< elements.size(); i++) {
    elements.get(0).<perform your action>;
 }