java - 从下拉列表中随机选择?

标签 java selenium-webdriver selenium-chromedriver

我的 html 示例代码是,

 <div class="list">
    <div class="dropdown">
        <ul role="menu">
            <li class="rsbListItem">one</li>
            <li class="rsbListItem">two</li>
            <li class="rsbListItem">three</li>
            <li class="rsbListItem">four</li>
            <li class="rsbListItem">five</li>
            <li class="rsbListItem">six</li>
            <li class="rsbListItem">seven</li>
            <li class="rsbListItem">eight</li>
        </ul>
    </div>
</div>

我如何为此编写 Selenium 脚本,并且每次运行时应该随机选择。

我尝试随机选择元素,但每次都选择相同的元素。这是我的代码。

List<WebElement> options = driver.findElements(By.xpath("//*[@role='menu']"));
Random rand = new Random();
int list= rand.nextInt(options.size());
options.get(list).click();

最佳答案

Selenium 不是我的菜,但是

List<WebElement> options = driver.findElements(By.xpath("//*[@role='menu']"));

这将返回与您的请求匹配的 WebElement 列表。所以你应该让元素(我猜应该只是一个)来使用它。我猜你也可以使用 findElement

然后,您将需要获取您所选择的每个 Option

List<WebElement> selects = driver.findElements(By.xpath("//*[@role='menu']"));
Random rand = new Random();
for(WebElement select : selects){
    List<WebElement> options = // get every option in it
    int list = rand.nextInt(options.size());
    options.get(list).click();
}

关于java - 从下拉列表中随机选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44587164/

相关文章:

google-chrome - Chrome/Firefox 在通过 (Watir-)Webdriver 调用时不保留 cookie?

javascript - 如何在 Selenium Chromedriver 中设置时区?

python - Chrome Webdriver 无法完成产品结帐自动化

java - 拿走物体的一部分

selenium-webdriver - capybara-webkit与selenium-webdriver的比较

java - 自 3.1.0 以来,使用 Maven 生成 QueryDSL 类失败

java - 在 Firefox 中自动下载 pdf 文件

java - 在整个 selenium 套件中使用相同的网络驱动程序

java - 不支持中文的 Content-Disposition 文件名

java - 为什么这段带有泛型的代码可以编译?