Headless chrome doesn't clear session between scenarios on Solano CI












0














Recently I decided to switch from capybara-webkit to headless chrome. When I try to run one cucumber feature on Solano CI the first scenario passes but the second one fails at the login because when user visits the login page they are already logged in



I use the following chromedriver and geckodriver versions on CI:



chromedriver -v
ChromeDriver 2.28.455506 (18f6627e265f442aeec9b6661a49fe819aeeea1f)

geckodriver -V
geckodriver 0.21.0


And the following gem versions: selenium-webdriver (3.141.0), capybara (3.11.1)



I have the following setup:



require 'selenium-webdriver'

Capybara.register_driver :chrome do |app|
options = Selenium::WebDriver::Chrome::Options.new(
args: %w[headless disable-gpu no-sandbox]
)
Capybara::Selenium::Driver.new(app, browser: :chrome, options: options)
end

Capybara.javascript_driver = :chrome


Any ideas why capybara doesn't clean the user session between the scenarios with headless chrome?










share|improve this question



























    0














    Recently I decided to switch from capybara-webkit to headless chrome. When I try to run one cucumber feature on Solano CI the first scenario passes but the second one fails at the login because when user visits the login page they are already logged in



    I use the following chromedriver and geckodriver versions on CI:



    chromedriver -v
    ChromeDriver 2.28.455506 (18f6627e265f442aeec9b6661a49fe819aeeea1f)

    geckodriver -V
    geckodriver 0.21.0


    And the following gem versions: selenium-webdriver (3.141.0), capybara (3.11.1)



    I have the following setup:



    require 'selenium-webdriver'

    Capybara.register_driver :chrome do |app|
    options = Selenium::WebDriver::Chrome::Options.new(
    args: %w[headless disable-gpu no-sandbox]
    )
    Capybara::Selenium::Driver.new(app, browser: :chrome, options: options)
    end

    Capybara.javascript_driver = :chrome


    Any ideas why capybara doesn't clean the user session between the scenarios with headless chrome?










    share|improve this question

























      0












      0








      0







      Recently I decided to switch from capybara-webkit to headless chrome. When I try to run one cucumber feature on Solano CI the first scenario passes but the second one fails at the login because when user visits the login page they are already logged in



      I use the following chromedriver and geckodriver versions on CI:



      chromedriver -v
      ChromeDriver 2.28.455506 (18f6627e265f442aeec9b6661a49fe819aeeea1f)

      geckodriver -V
      geckodriver 0.21.0


      And the following gem versions: selenium-webdriver (3.141.0), capybara (3.11.1)



      I have the following setup:



      require 'selenium-webdriver'

      Capybara.register_driver :chrome do |app|
      options = Selenium::WebDriver::Chrome::Options.new(
      args: %w[headless disable-gpu no-sandbox]
      )
      Capybara::Selenium::Driver.new(app, browser: :chrome, options: options)
      end

      Capybara.javascript_driver = :chrome


      Any ideas why capybara doesn't clean the user session between the scenarios with headless chrome?










      share|improve this question













      Recently I decided to switch from capybara-webkit to headless chrome. When I try to run one cucumber feature on Solano CI the first scenario passes but the second one fails at the login because when user visits the login page they are already logged in



      I use the following chromedriver and geckodriver versions on CI:



      chromedriver -v
      ChromeDriver 2.28.455506 (18f6627e265f442aeec9b6661a49fe819aeeea1f)

      geckodriver -V
      geckodriver 0.21.0


      And the following gem versions: selenium-webdriver (3.141.0), capybara (3.11.1)



      I have the following setup:



      require 'selenium-webdriver'

      Capybara.register_driver :chrome do |app|
      options = Selenium::WebDriver::Chrome::Options.new(
      args: %w[headless disable-gpu no-sandbox]
      )
      Capybara::Selenium::Driver.new(app, browser: :chrome, options: options)
      end

      Capybara.javascript_driver = :chrome


      Any ideas why capybara doesn't clean the user session between the scenarios with headless chrome?







      selenium-webdriver ruby-on-rails-5 capybara google-chrome-headless






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 20 at 9:52









      Hirurg103

      954714




      954714
























          2 Answers
          2






          active

          oldest

          votes


















          0














          Both of your drivers are out of date with the current versions being geckodriver 0.23 and chromedriver 2.43 so you probably want to start by updating those. Beyond that are you storing session information in the browsers window.localStorage and/or window.sessionStorage? If so you can set those to be cleared via options passed to the driver



          Capybara.register_driver :chrome do |app|
          options = Selenium::WebDriver::Chrome::Options.new(args: %w[no-sandbox])
          options.headless!
          Capybara::Selenium::Driver.new(app, browser: :chrome, options: options, clear_local_storage: true, clear_session_storage: true)
          end





          share|improve this answer





























            0














            Even I was facing same issue.



            After adding the steps to clear the cookies, session it is not working either. I added below code in env.rb to start a new session every time for a new test



            May be you can try this.



            Before do
            Capybara.session_name = ":session_#{Time.zone.now.to_i}"
            end

            After do
            Capybara.current_session.driver.quit
            end


            Also, you can add in chrome options to open the session in incognito window






            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%2f53390321%2fheadless-chrome-doesnt-clear-session-between-scenarios-on-solano-ci%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














              Both of your drivers are out of date with the current versions being geckodriver 0.23 and chromedriver 2.43 so you probably want to start by updating those. Beyond that are you storing session information in the browsers window.localStorage and/or window.sessionStorage? If so you can set those to be cleared via options passed to the driver



              Capybara.register_driver :chrome do |app|
              options = Selenium::WebDriver::Chrome::Options.new(args: %w[no-sandbox])
              options.headless!
              Capybara::Selenium::Driver.new(app, browser: :chrome, options: options, clear_local_storage: true, clear_session_storage: true)
              end





              share|improve this answer


























                0














                Both of your drivers are out of date with the current versions being geckodriver 0.23 and chromedriver 2.43 so you probably want to start by updating those. Beyond that are you storing session information in the browsers window.localStorage and/or window.sessionStorage? If so you can set those to be cleared via options passed to the driver



                Capybara.register_driver :chrome do |app|
                options = Selenium::WebDriver::Chrome::Options.new(args: %w[no-sandbox])
                options.headless!
                Capybara::Selenium::Driver.new(app, browser: :chrome, options: options, clear_local_storage: true, clear_session_storage: true)
                end





                share|improve this answer
























                  0












                  0








                  0






                  Both of your drivers are out of date with the current versions being geckodriver 0.23 and chromedriver 2.43 so you probably want to start by updating those. Beyond that are you storing session information in the browsers window.localStorage and/or window.sessionStorage? If so you can set those to be cleared via options passed to the driver



                  Capybara.register_driver :chrome do |app|
                  options = Selenium::WebDriver::Chrome::Options.new(args: %w[no-sandbox])
                  options.headless!
                  Capybara::Selenium::Driver.new(app, browser: :chrome, options: options, clear_local_storage: true, clear_session_storage: true)
                  end





                  share|improve this answer












                  Both of your drivers are out of date with the current versions being geckodriver 0.23 and chromedriver 2.43 so you probably want to start by updating those. Beyond that are you storing session information in the browsers window.localStorage and/or window.sessionStorage? If so you can set those to be cleared via options passed to the driver



                  Capybara.register_driver :chrome do |app|
                  options = Selenium::WebDriver::Chrome::Options.new(args: %w[no-sandbox])
                  options.headless!
                  Capybara::Selenium::Driver.new(app, browser: :chrome, options: options, clear_local_storage: true, clear_session_storage: true)
                  end






                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered Nov 20 at 16:55









                  Thomas Walpole

                  29.8k32647




                  29.8k32647

























                      0














                      Even I was facing same issue.



                      After adding the steps to clear the cookies, session it is not working either. I added below code in env.rb to start a new session every time for a new test



                      May be you can try this.



                      Before do
                      Capybara.session_name = ":session_#{Time.zone.now.to_i}"
                      end

                      After do
                      Capybara.current_session.driver.quit
                      end


                      Also, you can add in chrome options to open the session in incognito window






                      share|improve this answer




























                        0














                        Even I was facing same issue.



                        After adding the steps to clear the cookies, session it is not working either. I added below code in env.rb to start a new session every time for a new test



                        May be you can try this.



                        Before do
                        Capybara.session_name = ":session_#{Time.zone.now.to_i}"
                        end

                        After do
                        Capybara.current_session.driver.quit
                        end


                        Also, you can add in chrome options to open the session in incognito window






                        share|improve this answer


























                          0












                          0








                          0






                          Even I was facing same issue.



                          After adding the steps to clear the cookies, session it is not working either. I added below code in env.rb to start a new session every time for a new test



                          May be you can try this.



                          Before do
                          Capybara.session_name = ":session_#{Time.zone.now.to_i}"
                          end

                          After do
                          Capybara.current_session.driver.quit
                          end


                          Also, you can add in chrome options to open the session in incognito window






                          share|improve this answer














                          Even I was facing same issue.



                          After adding the steps to clear the cookies, session it is not working either. I added below code in env.rb to start a new session every time for a new test



                          May be you can try this.



                          Before do
                          Capybara.session_name = ":session_#{Time.zone.now.to_i}"
                          end

                          After do
                          Capybara.current_session.driver.quit
                          end


                          Also, you can add in chrome options to open the session in incognito window







                          share|improve this answer














                          share|improve this answer



                          share|improve this answer








                          edited Nov 30 at 19:29









                          Hirurg103

                          954714




                          954714










                          answered Nov 21 at 16:32









                          Kiran Reddy

                          164




                          164






























                              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%2f53390321%2fheadless-chrome-doesnt-clear-session-between-scenarios-on-solano-ci%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

                              Create new schema in PostgreSQL using DBeaver

                              Deepest pit of an array with Javascript: test on Codility

                              Fotorealismo