我有代码选择选项:
Select kraj = new Select (driver.findElement(By.id("kraj")));
kraj.selectByIndex(new Random().nextInt(user_country.getOptions().size()));
此代码没问题,但我想将其中一个选项选项排除为随机选项。 我怎么能这样做?
selectByIndex随机所有索引,但我喜欢第一个索引不是随机的(第一个索引总是相同的:" - 你的选择 - "
答案 0 :(得分:0)
添加几行代码来定义范围
Random randomOption = new Random();
int startOption = 1; //assuming "--your choice--" is index "0"
int endOption = user_country.getOptions().size()); // end of range
int number = startOption + randomOption .nextInt( endOption - startOption);
//然后做你的东西
Select kraj = new Select (driver.findElement(By.id("kraj")));
kraj.selectByIndex(number );
答案 1 :(得分:0)
@ivan试试这个
Select menu = new Select(driver.findElement(By.xpath("")));
menu.selectByVisibleText("Enter the option which you want to select");
答案 2 :(得分:0)
你可以试试这个:
int random=0;
do{
random=new Random().nextInt(user_country.getOptions().size());
}while(random==0);
Select kraj = new Select(driver.findElement(By.id("kraj")));
kraj.selectByIndex(random);
上述循环将一直运行,直到随机值不等于' 0' 。如果random的值不同,那么它将退出循环并选择选择菜单的相关索引。
您可以更改中的值(随机== 0)来自" 0"对于' 0到user_country.getOptions()。size() - 1' 范围内的任何其他值,将从选择中排除。
答案 3 :(得分:-1)
试试这个
// Assume the select has 5 options
Random random = new Random();
// Get a random number between 0 and 3 (that is size - 1, random.nextInt() generated is 0 inclusive, 4 exclusive.
int optionIndex = random.nextInt(user_country.getOptions().size() - 1);
// Increment optionIndex by 1 to pick an option between 1 to 4
kraj.selectByIndex(optionIndex++);
上面的代码基本上与random.nextInt(range)
相反,其中0是独占的,范围-1是包含的。