Selenium Java如何实现点击列表内的随机元素
问题原因
你原来的写法存在几处语法错误和边界遗漏:
Random实例化语句末尾缺失分号- List获取长度的
size是方法,必须加括号写为size() - WebElement的点击操作
click是方法,必须加括号写为click() - 没有做非空判断,列表为空时会抛出索引越界异常
正确实现代码
// 需提前导入依赖包 import java.util.Random; import org.openqa.selenium.WebElement; import java.util.List; // 类内属性和方法定义 @FindBy(xpath = "example") private List<WebElement> exampleList; private Random randomize = new Random(); public void clickOnRandomItemInList() { // 先校验列表有可用元素再操作 if (exampleList != null && !exampleList.isEmpty()) { int randomIndex = randomize.nextInt(exampleList.size()); exampleList.get(randomIndex).click(); } }
异常排查(如果运行仍不生效)
- 确认调用该方法时,页面中对应xpath的元素已经完成渲染,@FindBy注解的元素为懒加载,未渲染时列表会为空,可添加显式等待逻辑等待列表元素加载完成
- 确认xpath匹配的元素都是可点击状态,没有被遮挡、禁用的情况,必要时可先等待元素可点击再执行点击操作
内容的提问来源于stack exchange,提问作者SehiiH
相关产品推荐
相关产品推荐

