selenium模拟登录,登录请求返回302,页面重定向后报404错误
人工手动输入账号密码登录后,登录请求(login?service=http://best.youyuan.com/cas)返回302重定向到新的页面(https://best.youyuan.com/cas?ticket=ST-376416-ECsUQJ3kbHWZbDT...),此时重定向后页面是可以加载成功的。
但是使用selenium去自动输入账密登录后,登录请求也能成功返回302并立刻进行重定向,但是重定向之后的页面会404,我猜测是cookie丢失了,但是不知道该如何解决
左边是人工操作的结果,右边是selenium操作的结果
登录请求:
重定向请求:
你猜测的可能是对的,Selenium 在处理 cookie 方面可能会有些问题,这可能导致重定向失败和 404 错误。下面是一些可能的解决方案:
from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as ECdriver = webdriver.Firefox()driver.get("http://www.example.com")try: element = WebDriverWait(driver, 10).until( EC.presence_of_element_located((By.ID, "myDynamicElement"))finally: driver.quit()
# 获取所有cookiecookies = driver.get_cookies()# 在需要的时候设置cookiefor cookie in cookies: driver.add_cookie(cookie)
如果以上方法都不能解决问题,你可能需要更深入地调查问题原因,例如查看网络请求和响应的详细信息,或者联系网站的管理员或开发者以获取帮助。
问题内容: 我正在做一个简单的论坛,由一系列论坛组成,每个论坛分别代表首页,主题,postitit,登录名和用户列表页面。在某些页面上,当用户未登录时会出现一个链接。 我想要实现的是在登录后触发重定向(在RequestDispatcher上使用forward()),以便浏览器返回到用户在单击登录链接之前所在的页面。为此,我看到了两种解决方案。 第一种解决方案是使用带有登录按钮的HTML 和一个不可
记录器文件中的日志- org.springframework.Security.Access.event.loggerlistener-安全授权失败,原因是:org.springframework.Security.Access.accessdeniedexception:访问被拒绝;通过身份验证的主体:org.springframework.security.authentication.ano
我在Laravel5.2中使用了php artisan函数。 我想重定向的客人登录页面,若客人点击链接,只有用户并没有客人。 我想在登录后将用户重定向到后面的页面。 我怎么能这么做?请详细展示一些文件名示例。 ///////编辑 路线 控制器 Kernel.php
我使用的是Spring Security 4.1.1,但我遇到了一个问题:我试图访问URL,应用程序会重定向到登录页面。到现在为止,一直都还不错。 但是,成功登录后,应用程序会再次将我重定向到登录页面,并且不会创建任何会话,因此即使尝试直接访问URL(在URL栏中键入),应用程序也会重定向到登录页面。 有一些URL我必须要求登录才能访问它们。其他的,我可以访问无需身份验证。这些我不需要验证的URL
我有一个文件,带有一个,具有和字段,在上,它用
我刚开始研究Spring安全,遇到了一个问题。在登录表单中输入凭据后,用户将被重定向回登录页。 下面是我配置的SecurityConfiguration.java: } 登录表单: