Selenium WebDriver如何从“选择选项”菜单中选择随机选项(不包括一个选项)

Selenium WebDriver如何从“选择选项”菜单中选择随机选项(不包括一个选项),selenium,random,selenium-webdriver,Selenium,Random,Selenium Webdriver,我有代码选择选项: Select kraj = new Select (driver.findElement(By.id("kraj"))); kraj.selectByIndex(new Random().nextInt(user_country.getOptions().size())); 这段代码还可以,但我想排除一个随机选择选项。 我该怎么做 selectByIndex random all index,但我希望第一个索引不会是随机的(第一个索引的名称始终相同:“--your choi

我有代码选择选项:

Select kraj = new Select (driver.findElement(By.id("kraj")));
kraj.selectByIndex(new Random().nextInt(user_country.getOptions().size()));
这段代码还可以,但我想排除一个随机选择选项。 我该怎么做


selectByIndex random all index,但我希望第一个索引不会是随机的(第一个索引的名称始终相同:“--your choice--”

添加几行代码来定义一个范围

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 );
试试这个

// 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是独占的,range-1是包含的。

@ivan试试这个

Select menu=newselect(driver.findElement(By.xpath(“”));
菜单。选择ByVisibleText(“输入要选择的选项”);

您可以尝试以下操作:

    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”。如果随机值不同,则它将退出循环并选择选择菜单的相关索引


您可以将while(random==0)中的值从“0”更改为'0到user\u country.getOptions().size()-1'范围内的任何其他值,该值将被排除在选择之外。

我不太清楚。您的意思是要排除第一个索引(默认选项)吗当试图选择一个随机选项时?我不明白这一点:
(内点-开始点+1)
仅仅
(内点-开始点)
?在这种情况下你是对的。你只能使用(内点-开始点)