java - 在Selenium Java中从列表中选择随机元素并单击它,但getAttribute不等于0

标签 java selenium

我正在尝试从列表中获取随机元素并单击它。问题是,这些元素是具有属性“数量”的产品,我想单击数量不等于零的随机元素。我正在使用 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:

enter image description here

脚本:

// 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();

关于java - 在Selenium Java中从列表中选择随机元素并单击它,但getAttribute不等于0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56570820/

相关文章:

selenium - WebDriver - Internet Explorer 中的关键命令

java - 使用 registerServlet 方法时收到多个语法错误

java - uniVocity 解析器处理两个文件

java - 检查包含对象的列表中是否存在值的条件,

c# - driver.Close 后如何从 ChromeDriver 重新打开浏览器?

python - 将扩展与 Google Chrome Selenium 驱动程序一起使用

java - selenium webdriver 如何使用对象标签?

java - 无法定位元素消息

java - 用于 JUnit 测试的 Mockup JNDI 数据源

java - Android 立即创建的 Pair 元素为空