繁体   English   中英

从Selenium Java中的列表中选择随机元素,然后单击它,但getAttribute不等于零

[英]Select random element from the list in Selenium Java and click on it, but getAttribute is not equal to zero

我正在尝试从列表中获取随机元素,然后单击它。 事实是,元素是具有“数量”属性的产品,我想单击数量不等于零的随机元素。 我正在使用Selenium和Java。

我试图创建两个列表,一个包含所有元素,另一个放置不等于零的元素,并使用Random类单击元素,但无济于事,它确实单击了随机元素,但有时命中的数量为零。

    List<WebElement> products= driver.findElements(By.id("elementId"));
    List<Integer> productsNotEqualToZero = new ArrayList<>();

    for(webElement:products){
    if(!webElement.getAttribute("quantity").equals("0")){


productsNotEqualToZero.add(Integer.ParseInt(webElement.getAttribute("quantity 
    ")))
    }
    }
    Random random = new Random();
    int result = random.nextInt(productsNotEqualToZero.size());
    products.get(result).click;

问题是,没有任何东西可以保证产品属性“数量”不等于零,我对此表示感谢,谢谢。 第一次发布,如果无法正确格式化代码,对不起。

这是简单的方法。

HTML示例:

 <html><head></head><body><div> <select> <option quantity="1">Apple</option> <option quantity="4">Banana</option> <option quantity="0">Cherry</option> <option quantity="1">DragonFruit</option> </select> </div><table border="1" id="mytable"> </table></body></html> 

Xpath的:

在此处输入图片说明

脚本:

// get all products whose quanity >0
    List<WebElement> productElems = driver.findElements(By.xpath("//select/option[@quantity>'0']"));
    // get the len of productElems
    int maxProducts = productElems.size();
    // get random number
    Random random = new Random();
    int randomProduct = random.nextInt(maxProducts);
    // Select the list item
    productElems.get(randomProduct).click();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM