Java 使用selenium从下拉列表中选择随机值?

Java 使用selenium从下拉列表中选择随机值?,java,selenium,selenium-chromedriver,Java,Selenium,Selenium Chromedriver,我无法从包含以下html代码的下拉列表中选择随机值 <div class='ui-dropdown-items-wrapper'> <ul class='ui-dropdown-items ui-dropdown-list' role='listbox'> <cdk-virtual-scroll-viewport class='cdk-virtual-scroll-viewport'> <div class='cdk-

我无法从包含以下html代码的下拉列表中选择随机值

<div class='ui-dropdown-items-wrapper'>
   <ul class='ui-dropdown-items ui-dropdown-list' role='listbox'>
      <cdk-virtual-scroll-viewport class='cdk-virtual-scroll-viewport'>
         <div class='cdk-virtual-scroll-content-wrapper'>
            <p-dropdownitem class='ng-tns-c14'>
               <li role='option' class='ui-dropdown-items ui' area-label="apple">
                  <span class='ng-star-inserted'>apple</span>
               </li>
            </p-dropdownitem>
            <p-dropdownitem class='ng-tns-c14'>
               <li role='option' class='ui-dropdown-items ui' area-label="Banana">
                  <span class='ng-star-inserted'>Banana</span>
               </li>
            </p-dropdownitem>
            <p-dropdownitem class='ng-tns-c14'>
               <li role='option' class='ui-dropdown-items ui' area-label="Mango">
                  <span class='ng-star-inserted'>Mango</span>
               </li>
            </p-dropdownitem>
         </div>
         <div class="cdk-virtual-scroll-spacer"></div>
      </cdk-virtual-scroll-viewport>
   </ul>
</div>
我试过下面的代码,但不起作用。有人能帮我从上面的HTML代码中选择随机值吗

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

你能试试这个XPath吗

 List<WebElement> options = driver.findElements(By.xpath("//p-dropdownitem/li[@role='option']/span"));
 int size = options.size();

 options.get(new Random().nextInt(size)).click();

你能试试这个XPath吗

 List<WebElement> options = driver.findElements(By.xpath("//p-dropdownitem/li[@role='option']/span"));
 int size = options.size();

 options.get(new Random().nextInt(size)).click();

我已经修改了XPath,它工作正常,但在执行下拉选择之前,我需要单击下拉列表,然后只加载li/span列表

将XPath修改为: 最终代码:
我已经修改了XPath,它工作正常,但在执行下拉选择之前,我需要单击下拉列表,然后只加载li/span列表

将XPath修改为: 最终代码:
你能给我们看一张html的图片吗?你提供的HTML看起来像纯文本,没有可选择的。你能给我们展示一下HTML的图片吗?您提供的HTML看起来像纯文本,没有可选择的内容。
List<WebElement> options = driver.findElements(By.xpath("//label[@for='year']/../div//li[not(contains(.,'--select--'))]"));
 Random rand = new Random();
 int list= rand.nextInt(options.size());
 options.get(list).click();