Selenium WebDriver如何从选择选项菜单中选择随机选项,不包括一个选项

时间:2014-11-04 19:35:26

标签: selenium random selenium-webdriver

我有代码选择选项:

Select kraj = new Select (driver.findElement(By.id("kraj")));
kraj.selectByIndex(new Random().nextInt(user_country.getOptions().size()));

此代码没问题,但我想将其中一个选项选项排除为随机选项。 我怎么能这样做?

selectByIndex随机所有索引,但我喜欢第一个索引不是随机的(第一个索引总是相同的:" - 你的选择 - "

4 个答案:

答案 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是包含的。