I can't find the button element to click on it











up vote
0
down vote

favorite












I am trying to click on the button "View all details" to expand the details on a restaurant from OpenTable but I keep getting a no element exception. Image of the wesbite



from selenium import webdriver

driver = webdriver.Chrome(
'/Library/Python/2.7/site-packages/chromedriver')
url = "https://www.opentable.com/chicago-illinois-restaurant-listings"
driver.get(url)

element = driver.find_element_by_xpath(
'//*[@id="search_results"]/div[2]/div[1]/div/div[2]/div[1]/a')
element.click()
driver.find_element_by_css_selector(
'#overview-section > div:nth-child(4) > div.f9f46391 > button').click()

driver.quit()









share|improve this question






















  • You can try doing this driver.find_elements_by_class_name("_7f28dfbb _2c55c63f a8e8f9b4 _06bf3736")[1].click();
    – ANISH TIWARI
    Nov 11 at 18:03

















up vote
0
down vote

favorite












I am trying to click on the button "View all details" to expand the details on a restaurant from OpenTable but I keep getting a no element exception. Image of the wesbite



from selenium import webdriver

driver = webdriver.Chrome(
'/Library/Python/2.7/site-packages/chromedriver')
url = "https://www.opentable.com/chicago-illinois-restaurant-listings"
driver.get(url)

element = driver.find_element_by_xpath(
'//*[@id="search_results"]/div[2]/div[1]/div/div[2]/div[1]/a')
element.click()
driver.find_element_by_css_selector(
'#overview-section > div:nth-child(4) > div.f9f46391 > button').click()

driver.quit()









share|improve this question






















  • You can try doing this driver.find_elements_by_class_name("_7f28dfbb _2c55c63f a8e8f9b4 _06bf3736")[1].click();
    – ANISH TIWARI
    Nov 11 at 18:03















up vote
0
down vote

favorite









up vote
0
down vote

favorite











I am trying to click on the button "View all details" to expand the details on a restaurant from OpenTable but I keep getting a no element exception. Image of the wesbite



from selenium import webdriver

driver = webdriver.Chrome(
'/Library/Python/2.7/site-packages/chromedriver')
url = "https://www.opentable.com/chicago-illinois-restaurant-listings"
driver.get(url)

element = driver.find_element_by_xpath(
'//*[@id="search_results"]/div[2]/div[1]/div/div[2]/div[1]/a')
element.click()
driver.find_element_by_css_selector(
'#overview-section > div:nth-child(4) > div.f9f46391 > button').click()

driver.quit()









share|improve this question













I am trying to click on the button "View all details" to expand the details on a restaurant from OpenTable but I keep getting a no element exception. Image of the wesbite



from selenium import webdriver

driver = webdriver.Chrome(
'/Library/Python/2.7/site-packages/chromedriver')
url = "https://www.opentable.com/chicago-illinois-restaurant-listings"
driver.get(url)

element = driver.find_element_by_xpath(
'//*[@id="search_results"]/div[2]/div[1]/div/div[2]/div[1]/a')
element.click()
driver.find_element_by_css_selector(
'#overview-section > div:nth-child(4) > div.f9f46391 > button').click()

driver.quit()






python selenium web web-scraping






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 11 at 16:34









Fidel_Willis

217




217












  • You can try doing this driver.find_elements_by_class_name("_7f28dfbb _2c55c63f a8e8f9b4 _06bf3736")[1].click();
    – ANISH TIWARI
    Nov 11 at 18:03




















  • You can try doing this driver.find_elements_by_class_name("_7f28dfbb _2c55c63f a8e8f9b4 _06bf3736")[1].click();
    – ANISH TIWARI
    Nov 11 at 18:03


















You can try doing this driver.find_elements_by_class_name("_7f28dfbb _2c55c63f a8e8f9b4 _06bf3736")[1].click();
– ANISH TIWARI
Nov 11 at 18:03






You can try doing this driver.find_elements_by_class_name("_7f28dfbb _2c55c63f a8e8f9b4 _06bf3736")[1].click();
– ANISH TIWARI
Nov 11 at 18:03














1 Answer
1






active

oldest

votes

















up vote
1
down vote













Each result link has target='_blank' attribute. That means that if to click the link details page will be opened in new tab. To handle elements on new tab you should switch to it:



driver.get(url)
current = driver.current_window_handle
driver.find_element_by_css_selector('a.rest-row-name').click()
driver.switch_to.window([tab for tab in driver.window_handles if tab != current][0])


Note that you should also wait for button to became clickable:



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

wait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '//button[.="View all details"]'))).click()





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%2f53250829%2fi-cant-find-the-button-element-to-click-on-it%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes








    up vote
    1
    down vote













    Each result link has target='_blank' attribute. That means that if to click the link details page will be opened in new tab. To handle elements on new tab you should switch to it:



    driver.get(url)
    current = driver.current_window_handle
    driver.find_element_by_css_selector('a.rest-row-name').click()
    driver.switch_to.window([tab for tab in driver.window_handles if tab != current][0])


    Note that you should also wait for button to became clickable:



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

    wait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '//button[.="View all details"]'))).click()





    share|improve this answer

























      up vote
      1
      down vote













      Each result link has target='_blank' attribute. That means that if to click the link details page will be opened in new tab. To handle elements on new tab you should switch to it:



      driver.get(url)
      current = driver.current_window_handle
      driver.find_element_by_css_selector('a.rest-row-name').click()
      driver.switch_to.window([tab for tab in driver.window_handles if tab != current][0])


      Note that you should also wait for button to became clickable:



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

      wait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '//button[.="View all details"]'))).click()





      share|improve this answer























        up vote
        1
        down vote










        up vote
        1
        down vote









        Each result link has target='_blank' attribute. That means that if to click the link details page will be opened in new tab. To handle elements on new tab you should switch to it:



        driver.get(url)
        current = driver.current_window_handle
        driver.find_element_by_css_selector('a.rest-row-name').click()
        driver.switch_to.window([tab for tab in driver.window_handles if tab != current][0])


        Note that you should also wait for button to became clickable:



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

        wait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '//button[.="View all details"]'))).click()





        share|improve this answer












        Each result link has target='_blank' attribute. That means that if to click the link details page will be opened in new tab. To handle elements on new tab you should switch to it:



        driver.get(url)
        current = driver.current_window_handle
        driver.find_element_by_css_selector('a.rest-row-name').click()
        driver.switch_to.window([tab for tab in driver.window_handles if tab != current][0])


        Note that you should also wait for button to became clickable:



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

        wait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '//button[.="View all details"]'))).click()






        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Nov 11 at 16:53









        Andersson

        35.8k103066




        35.8k103066






























            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.





            Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


            Please pay close attention to the following guidance:


            • 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%2f53250829%2fi-cant-find-the-button-element-to-click-on-it%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