如何双击列表中具有相同 ID、索引和名称的元素

Posted

技术标签:

【中文标题】如何双击列表中具有相同 ID、索引和名称的元素【英文标题】:How can I double click the element with the same id, index and name in the list 【发布时间】:2021-10-23 07:58:13 【问题描述】:

enter image description here

enter image description here

大家好。如何在具有所有相同属性的元素上多次单击?

我的代码:

BasePage.java

public By parent = By.xpath("//android.widget.LinearLayout");
public By children = By.xpath("//android.widget.TextView[@text='Remove']");

protected List<WebElement> findChildrenOfParent(By parentBy, By childrenBy) 
    waitVisibility(parentBy);
    WebElement parentElement = driver.findElement(parentBy);
    return parentElement.findElements(childrenBy);


protected void removeAllProductsFromCart(List<WebElement> elementList) 

    for (int i = 0; i < elementList.size(); i++) 
        elementList.get(i).click();
                   
    

CartPage.java

public void deleteAllProductsBasket() throws InterruptedException 
                
    List<WebElement> childrenElements = findChildrenOfParent(parent, children);
    removeAllProductsFromCart(childrenElements);
            

【问题讨论】:

【参考方案1】:

您只需点击这些元素两次:

for (int i = 0; i < elementList.size(); i++) 
    elementList.get(i).click();
    try 
        Thread.sleep(300);
     catch (InterruptedException e) 
        e.printStackTrace();
                       
    elementList.get(i).click();

我在点击之间添加了短暂的睡眠以使其更稳定

【讨论】:

您可能正在尝试使用错误的元素。可能你应该点击“TextView:remove”元素?我不知道,需要调试一下。

以上是关于如何双击列表中具有相同 ID、索引和名称的元素的主要内容,如果未能解决你的问题,请参考以下文章

如何获取具有相同名称的所有元素值

合并两个相同长度的Scala列表,同一个索引的元素成为一个元素

htmlDocument.GetElementById 返回具有相同名称的元素,而不是 id

如何使用selenium和python创建具有相同xpath的元素列表?

BQ数组查找:类似于NTH,但基于索引,而不是位置

Python列表元素为字典时,如何根据其中某个相同的键值进行元素合并