无法使用硒Web驱动程序计算/打印列表框下列出的所有选项



我有这个片段。我正在尝试计算/打印列表框下列出的country所有选项。

  <select id="country" class="text-box drop-down-list ng-pristine ng-not-empty ng-valid ng-valid-required ng-touched" ng-class="{'text-box-error': form.country.$touched && form.country.$invalid}" ng-options="country.name as country.name for country in countries" ng-model="mv.country" name="country" required="" style="">
    <option translate="CUSTOMER_SUPPORT_COUNTRY_SELECT" value="" selected="selected">Select One</option>
    <option label="Afghanistan" value="string:Afghanistan">Afghanistan</option>
    <option label="Aland Islands" value="string:Aland Islands">Aland Islands</option>
    <option label="Albania" value="string:Albania">Albania</option>
    <option label="Algeria" value="string:Algeria">Algeria</option>
    <option label="American Samoa" value="string:American Samoa">American Samoa</option>
    <option label="Andorra" value="string:Andorra">Andorra</option>
    <option label="Angola" value="string:Angola">Angola</option>
    <option label="Anguilla" value="string:Anguilla">Anguilla</option>
    <option label="Antarctica" value="string:Antarctica">Antarctica</option>
    <option label="Antigua and Barbuda" value="string:Antigua and Barbuda">Antigua and Barbuda</option>
    <option label="Argentina" value="string:Argentina">Argentina</option>

我被算作"1",尽管列表框有很多。

    WebElement X = driver.findElement(By.id("country"));
               Select s=new Select(X);
               List<WebElement> elementCount = s.getOptions();
               int itemSize = elementCount.size();`enter code here`
               System.out.println(itemSize);
                for(int i = 0; i < itemSize ; i++){
                    String optionsValue = elementCount.get(i).getText();
                    System.out.println(optionsValue);

谢谢@guy,您的建议解决了我的问题。我在选择语句之后添加了等待语句-thread.sleep((,它可以工作。

 WebElement X = driver.findElement(By.id("country"));
       Select s=new Select(X);
       List<WebElement> elementCount = s.getOptions();
       Thread.sleep(2000);
      int itemSize = elementCount.size();
      /*    System.out.println(itemSize);
        for(int i = 0; i < itemSize ; i++){
            String optionsValue = elementCount.get(i).getText();
            System.out.println(optionsValue);

当我们在 select tag 中使用 ng-options 时,需要从 java 脚本加载选项。因此,元素将被加载,但选项需要一些时间才能从java脚本加载。通过使用一些等待时间可以避免这种情况。