Selenium Python - Clicking an image link got error: Message: element not visible





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}







0















I am trying to stimulate the onclick event for login and below is the html sample



<div id="divAccInfoDefaultLoginButton" style="display:inline">
<a href="#" onclick="OnClickLogin();return false;"
onmouseout="if ( !isInSSOChecking() &amp;&amp; !isInEKBA() &amp;&amp; EnableAccInfo() ) { loadMouseEventImage('pic_login', 'pic_login'); }"
onmouseover="if ( !isInSSOChecking() &amp;&amp; !isInEKBA() &amp;&amp; EnableAccInfo() ) { loadMouseEventImage('pic_login', 'pic_login_on'); }">
<img id="pic_login" border="0" src="./images/btn_login_ch.gif?cv=L3.01R2" title="登入">
</a>
</div>


I try to click both href or the image but both failed as selenium.common.exceptions.ElementNotVisibleException: Message: element not visible



href = driver.find_element_by_xpath("//div[@id='divAccInfoDefaultLoginButton']//a")
href.click()

img= driver.find_element_by_xpath("//div[@id='divAccInfoDefaultLoginButton']//a//img")
img.click()


What is the correct way to stimulate the click action to trigger the onclick event?










share|improve this question































    0















    I am trying to stimulate the onclick event for login and below is the html sample



    <div id="divAccInfoDefaultLoginButton" style="display:inline">
    <a href="#" onclick="OnClickLogin();return false;"
    onmouseout="if ( !isInSSOChecking() &amp;&amp; !isInEKBA() &amp;&amp; EnableAccInfo() ) { loadMouseEventImage('pic_login', 'pic_login'); }"
    onmouseover="if ( !isInSSOChecking() &amp;&amp; !isInEKBA() &amp;&amp; EnableAccInfo() ) { loadMouseEventImage('pic_login', 'pic_login_on'); }">
    <img id="pic_login" border="0" src="./images/btn_login_ch.gif?cv=L3.01R2" title="登入">
    </a>
    </div>


    I try to click both href or the image but both failed as selenium.common.exceptions.ElementNotVisibleException: Message: element not visible



    href = driver.find_element_by_xpath("//div[@id='divAccInfoDefaultLoginButton']//a")
    href.click()

    img= driver.find_element_by_xpath("//div[@id='divAccInfoDefaultLoginButton']//a//img")
    img.click()


    What is the correct way to stimulate the click action to trigger the onclick event?










    share|improve this question



























      0












      0








      0








      I am trying to stimulate the onclick event for login and below is the html sample



      <div id="divAccInfoDefaultLoginButton" style="display:inline">
      <a href="#" onclick="OnClickLogin();return false;"
      onmouseout="if ( !isInSSOChecking() &amp;&amp; !isInEKBA() &amp;&amp; EnableAccInfo() ) { loadMouseEventImage('pic_login', 'pic_login'); }"
      onmouseover="if ( !isInSSOChecking() &amp;&amp; !isInEKBA() &amp;&amp; EnableAccInfo() ) { loadMouseEventImage('pic_login', 'pic_login_on'); }">
      <img id="pic_login" border="0" src="./images/btn_login_ch.gif?cv=L3.01R2" title="登入">
      </a>
      </div>


      I try to click both href or the image but both failed as selenium.common.exceptions.ElementNotVisibleException: Message: element not visible



      href = driver.find_element_by_xpath("//div[@id='divAccInfoDefaultLoginButton']//a")
      href.click()

      img= driver.find_element_by_xpath("//div[@id='divAccInfoDefaultLoginButton']//a//img")
      img.click()


      What is the correct way to stimulate the click action to trigger the onclick event?










      share|improve this question
















      I am trying to stimulate the onclick event for login and below is the html sample



      <div id="divAccInfoDefaultLoginButton" style="display:inline">
      <a href="#" onclick="OnClickLogin();return false;"
      onmouseout="if ( !isInSSOChecking() &amp;&amp; !isInEKBA() &amp;&amp; EnableAccInfo() ) { loadMouseEventImage('pic_login', 'pic_login'); }"
      onmouseover="if ( !isInSSOChecking() &amp;&amp; !isInEKBA() &amp;&amp; EnableAccInfo() ) { loadMouseEventImage('pic_login', 'pic_login_on'); }">
      <img id="pic_login" border="0" src="./images/btn_login_ch.gif?cv=L3.01R2" title="登入">
      </a>
      </div>


      I try to click both href or the image but both failed as selenium.common.exceptions.ElementNotVisibleException: Message: element not visible



      href = driver.find_element_by_xpath("//div[@id='divAccInfoDefaultLoginButton']//a")
      href.click()

      img= driver.find_element_by_xpath("//div[@id='divAccInfoDefaultLoginButton']//a//img")
      img.click()


      What is the correct way to stimulate the click action to trigger the onclick event?







      python selenium xpath css-selectors webdriverwait






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Nov 19 '18 at 10:55









      DebanjanB

      48k144892




      48k144892










      asked Nov 17 '18 at 6:36









      Charlie SiuCharlie Siu

      598




      598
























          2 Answers
          2






          active

          oldest

          votes


















          0














          add WebDriverWait() also you need to switch to iframe



          loginFrame = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "betSlipFrame")))
          driver.switch_to.frame(loginFrame)

          # Login box visible click it
          href = driver.find_element_by_xpath("//div[@id='divAccInfoDefaultLoginButton']//a")
          href.click()





          share|improve this answer

































            0














            To click on the element with title as 登入 you need to induce WebDriverWait for the desired element to be clickable and you can use either of the following solutions:





            • CSS_SELECTOR:



              WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "div#divAccInfoDefaultLoginButton>a[onclick*='OnClickLogin']>img#pic_login"))).click()



            • XPATH:



              WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@id='divAccInfoDefaultLoginButton']/a[contains(@onclick,'OnClickLogin')]/img[@id='pic_login']"))).click()



            • Note : You have to add the following imports :



              from selenium.webdriver.support.ui import WebDriverWait
              from selenium.webdriver.common.by import By
              from selenium.webdriver.support import expected_conditions as EC







            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',
              autoActivateHeartbeat: false,
              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%2f53348871%2fselenium-python-clicking-an-image-link-got-error-message-element-not-visible%23new-answer', 'question_page');
              }
              );

              Post as a guest















              Required, but never shown

























              2 Answers
              2






              active

              oldest

              votes








              2 Answers
              2






              active

              oldest

              votes









              active

              oldest

              votes






              active

              oldest

              votes









              0














              add WebDriverWait() also you need to switch to iframe



              loginFrame = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "betSlipFrame")))
              driver.switch_to.frame(loginFrame)

              # Login box visible click it
              href = driver.find_element_by_xpath("//div[@id='divAccInfoDefaultLoginButton']//a")
              href.click()





              share|improve this answer






























                0














                add WebDriverWait() also you need to switch to iframe



                loginFrame = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "betSlipFrame")))
                driver.switch_to.frame(loginFrame)

                # Login box visible click it
                href = driver.find_element_by_xpath("//div[@id='divAccInfoDefaultLoginButton']//a")
                href.click()





                share|improve this answer




























                  0












                  0








                  0







                  add WebDriverWait() also you need to switch to iframe



                  loginFrame = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "betSlipFrame")))
                  driver.switch_to.frame(loginFrame)

                  # Login box visible click it
                  href = driver.find_element_by_xpath("//div[@id='divAccInfoDefaultLoginButton']//a")
                  href.click()





                  share|improve this answer















                  add WebDriverWait() also you need to switch to iframe



                  loginFrame = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "betSlipFrame")))
                  driver.switch_to.frame(loginFrame)

                  # Login box visible click it
                  href = driver.find_element_by_xpath("//div[@id='divAccInfoDefaultLoginButton']//a")
                  href.click()






                  share|improve this answer














                  share|improve this answer



                  share|improve this answer








                  edited Nov 17 '18 at 7:12

























                  answered Nov 17 '18 at 6:46









                  ewwinkewwink

                  12.3k22441




                  12.3k22441

























                      0














                      To click on the element with title as 登入 you need to induce WebDriverWait for the desired element to be clickable and you can use either of the following solutions:





                      • CSS_SELECTOR:



                        WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "div#divAccInfoDefaultLoginButton>a[onclick*='OnClickLogin']>img#pic_login"))).click()



                      • XPATH:



                        WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@id='divAccInfoDefaultLoginButton']/a[contains(@onclick,'OnClickLogin')]/img[@id='pic_login']"))).click()



                      • Note : You have to add the following imports :



                        from selenium.webdriver.support.ui import WebDriverWait
                        from selenium.webdriver.common.by import By
                        from selenium.webdriver.support import expected_conditions as EC







                      share|improve this answer




























                        0














                        To click on the element with title as 登入 you need to induce WebDriverWait for the desired element to be clickable and you can use either of the following solutions:





                        • CSS_SELECTOR:



                          WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "div#divAccInfoDefaultLoginButton>a[onclick*='OnClickLogin']>img#pic_login"))).click()



                        • XPATH:



                          WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@id='divAccInfoDefaultLoginButton']/a[contains(@onclick,'OnClickLogin')]/img[@id='pic_login']"))).click()



                        • Note : You have to add the following imports :



                          from selenium.webdriver.support.ui import WebDriverWait
                          from selenium.webdriver.common.by import By
                          from selenium.webdriver.support import expected_conditions as EC







                        share|improve this answer


























                          0












                          0








                          0







                          To click on the element with title as 登入 you need to induce WebDriverWait for the desired element to be clickable and you can use either of the following solutions:





                          • CSS_SELECTOR:



                            WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "div#divAccInfoDefaultLoginButton>a[onclick*='OnClickLogin']>img#pic_login"))).click()



                          • XPATH:



                            WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@id='divAccInfoDefaultLoginButton']/a[contains(@onclick,'OnClickLogin')]/img[@id='pic_login']"))).click()



                          • Note : You have to add the following imports :



                            from selenium.webdriver.support.ui import WebDriverWait
                            from selenium.webdriver.common.by import By
                            from selenium.webdriver.support import expected_conditions as EC







                          share|improve this answer













                          To click on the element with title as 登入 you need to induce WebDriverWait for the desired element to be clickable and you can use either of the following solutions:





                          • CSS_SELECTOR:



                            WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "div#divAccInfoDefaultLoginButton>a[onclick*='OnClickLogin']>img#pic_login"))).click()



                          • XPATH:



                            WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@id='divAccInfoDefaultLoginButton']/a[contains(@onclick,'OnClickLogin')]/img[@id='pic_login']"))).click()



                          • Note : You have to add the following imports :



                            from selenium.webdriver.support.ui import WebDriverWait
                            from selenium.webdriver.common.by import By
                            from selenium.webdriver.support import expected_conditions as EC








                          share|improve this answer












                          share|improve this answer



                          share|improve this answer










                          answered Nov 19 '18 at 10:56









                          DebanjanBDebanjanB

                          48k144892




                          48k144892






























                              draft saved

                              draft discarded




















































                              Thanks for contributing an answer to Stack Overflow!


                              • Please be sure to answer the question. Provide details and share your research!

                              But avoid



                              • Asking for help, clarification, or responding to other answers.

                              • Making statements based on opinion; back them up with references or personal experience.


                              To learn more, see our tips on writing great answers.




                              draft saved


                              draft discarded














                              StackExchange.ready(
                              function () {
                              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53348871%2fselenium-python-clicking-an-image-link-got-error-message-element-not-visible%23new-answer', 'question_page');
                              }
                              );

                              Post as a guest















                              Required, but never shown





















































                              Required, but never shown














                              Required, but never shown












                              Required, but never shown







                              Required, but never shown

































                              Required, but never shown














                              Required, but never shown












                              Required, but never shown







                              Required, but never shown







                              Popular posts from this blog

                              Xamarin.iOS Cant Deploy on Iphone

                              Glorious Revolution

                              Dulmage-Mendelsohn matrix decomposition in Python