Selenium (Java) and trouble getting Select element











up vote
1
down vote

favorite












I'm having trouble getting and using a Select element using @FindBy.



The markkup:



<td>
<felt [control]="kontactTypeFC" [classes]="'hb-distNone'">
<label for="contactTypes" class="hb-label">Kontakttype</label>
<select formControlName="contactType" class="hb-inputfield" id="contactTypes" [attr.disabled]="erSakenLukket(sak)">
<option *ngFor="let option of contactTypeOptions" [ngValue]="option.type" [disabled]="option.disabled"> {{option.text }} </option>
</select>
</felt>
</td>


The following selenium code works fine



return new Select(this.element.findElement(By.id("contactTypes")));


However, this does not:



@FindBy(id = "contactTypes")
public Select contactTypes;

return contactTypes;


This returns null, creating an NPE.



I'm using the exact same method for getting other elements on the page. Only difference is that the other elements are WebElement, not Select.



NB: I am of course initializing the page object:



PageFactory.initElements(driver, this);









share|improve this question




























    up vote
    1
    down vote

    favorite












    I'm having trouble getting and using a Select element using @FindBy.



    The markkup:



    <td>
    <felt [control]="kontactTypeFC" [classes]="'hb-distNone'">
    <label for="contactTypes" class="hb-label">Kontakttype</label>
    <select formControlName="contactType" class="hb-inputfield" id="contactTypes" [attr.disabled]="erSakenLukket(sak)">
    <option *ngFor="let option of contactTypeOptions" [ngValue]="option.type" [disabled]="option.disabled"> {{option.text }} </option>
    </select>
    </felt>
    </td>


    The following selenium code works fine



    return new Select(this.element.findElement(By.id("contactTypes")));


    However, this does not:



    @FindBy(id = "contactTypes")
    public Select contactTypes;

    return contactTypes;


    This returns null, creating an NPE.



    I'm using the exact same method for getting other elements on the page. Only difference is that the other elements are WebElement, not Select.



    NB: I am of course initializing the page object:



    PageFactory.initElements(driver, this);









    share|improve this question


























      up vote
      1
      down vote

      favorite









      up vote
      1
      down vote

      favorite











      I'm having trouble getting and using a Select element using @FindBy.



      The markkup:



      <td>
      <felt [control]="kontactTypeFC" [classes]="'hb-distNone'">
      <label for="contactTypes" class="hb-label">Kontakttype</label>
      <select formControlName="contactType" class="hb-inputfield" id="contactTypes" [attr.disabled]="erSakenLukket(sak)">
      <option *ngFor="let option of contactTypeOptions" [ngValue]="option.type" [disabled]="option.disabled"> {{option.text }} </option>
      </select>
      </felt>
      </td>


      The following selenium code works fine



      return new Select(this.element.findElement(By.id("contactTypes")));


      However, this does not:



      @FindBy(id = "contactTypes")
      public Select contactTypes;

      return contactTypes;


      This returns null, creating an NPE.



      I'm using the exact same method for getting other elements on the page. Only difference is that the other elements are WebElement, not Select.



      NB: I am of course initializing the page object:



      PageFactory.initElements(driver, this);









      share|improve this question















      I'm having trouble getting and using a Select element using @FindBy.



      The markkup:



      <td>
      <felt [control]="kontactTypeFC" [classes]="'hb-distNone'">
      <label for="contactTypes" class="hb-label">Kontakttype</label>
      <select formControlName="contactType" class="hb-inputfield" id="contactTypes" [attr.disabled]="erSakenLukket(sak)">
      <option *ngFor="let option of contactTypeOptions" [ngValue]="option.type" [disabled]="option.disabled"> {{option.text }} </option>
      </select>
      </felt>
      </td>


      The following selenium code works fine



      return new Select(this.element.findElement(By.id("contactTypes")));


      However, this does not:



      @FindBy(id = "contactTypes")
      public Select contactTypes;

      return contactTypes;


      This returns null, creating an NPE.



      I'm using the exact same method for getting other elements on the page. Only difference is that the other elements are WebElement, not Select.



      NB: I am of course initializing the page object:



      PageFactory.initElements(driver, this);






      java selenium select selenium-webdriver






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Nov 8 at 9:59









      Guy

      17.6k62149




      17.6k62149










      asked Nov 8 at 9:50









      Hfrav

      757




      757
























          1 Answer
          1






          active

          oldest

          votes

















          up vote
          2
          down vote



          accepted










          Select is a class which receives WebElement in the constructor, you can't use page factory to initialize it. Locate the WebElement with @FindBy and use it with the Select



          @FindBy(id = "contactTypes")
          public WebElement contactTypes;

          new Select(contactTypes);





          share|improve this answer





















            Your Answer






            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "1"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














             

            draft saved


            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53205179%2fselenium-java-and-trouble-getting-select-element%23new-answer', 'question_page');
            }
            );

            Post as a guest
































            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes








            up vote
            2
            down vote



            accepted










            Select is a class which receives WebElement in the constructor, you can't use page factory to initialize it. Locate the WebElement with @FindBy and use it with the Select



            @FindBy(id = "contactTypes")
            public WebElement contactTypes;

            new Select(contactTypes);





            share|improve this answer

























              up vote
              2
              down vote



              accepted










              Select is a class which receives WebElement in the constructor, you can't use page factory to initialize it. Locate the WebElement with @FindBy and use it with the Select



              @FindBy(id = "contactTypes")
              public WebElement contactTypes;

              new Select(contactTypes);





              share|improve this answer























                up vote
                2
                down vote



                accepted







                up vote
                2
                down vote



                accepted






                Select is a class which receives WebElement in the constructor, you can't use page factory to initialize it. Locate the WebElement with @FindBy and use it with the Select



                @FindBy(id = "contactTypes")
                public WebElement contactTypes;

                new Select(contactTypes);





                share|improve this answer












                Select is a class which receives WebElement in the constructor, you can't use page factory to initialize it. Locate the WebElement with @FindBy and use it with the Select



                @FindBy(id = "contactTypes")
                public WebElement contactTypes;

                new Select(contactTypes);






                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Nov 8 at 9:58









                Guy

                17.6k62149




                17.6k62149






























                     

                    draft saved


                    draft discarded



















































                     


                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53205179%2fselenium-java-and-trouble-getting-select-element%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest




















































































                    Popular posts from this blog

                    Schultheiß

                    Liste der Kulturdenkmale in Wilsdruff

                    Android Play Services Check