selenium自动化的时候网址重定向问题的解决思路

这篇具有很好参考价值的文章主要介绍了selenium自动化的时候网址重定向问题的解决思路。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、背景

因为我们系统是用企业微信扫码登录的,就输入网址
management-xxx.xxx.com以后,url就会重定向到企业微信授权的url :https://open.work.weixin.qq.com/wwopen/sso/3rd_qrConnect?state=xxx&redirect_uri=management-xxx.xxx.com
,直到获取auth_code之后登录成功,然后再跳回首页。
但是因为重定向导致domain变了,cookie一直塞不进去,提示“invalid token domain”
python selenium 重定向,selenium,自动化,python

二、解决方案

1、尝试把domain替换成微信的domain
虽然可以登录成功,但是那个domain毕竟不是我们系统的,所以失败了

2、找开发mock一个授权扫码登录的接口
这个方式可能可行,但是我找的开发对这块不熟悉,说不确定是否可以实现

3、增加等待时长,强制让它不跳转
既然selenium只是通过地址栏里面的域名来写入cookie的,那么我们只需要通过某种方法来中断selenium 的加载使地址栏保持登录后的域名网址即可。这个方法就是python的try except的异常捕捉方法!
参考文章:关于使用selenium免登陆爬取网页时,自动跳转登录页面从而导致写cookie失败的解决办法
代码如下:文章来源地址https://www.toymoban.com/news/detail-745323.html

import json
import time

import yaml
from selenium import webdriver

'''
获取cookie
'''


class TestMALogin:

    def setup_class(self):
        self.driver = webdriver.Chrome()
        self.driver.implicitly_wait(10)
        self.driver.maximize_window()

    # def teardown_class(self):
    #     self.driver.quit()

    def test_save_cookies(self):
        """
        保存cookies
        :return:
        """
        # 1.访问MA的登录页面
        self.driver.get("management-xxx.xxx.com")
        # self.driver.get("management-xxx.xxx.com")
        # 2.手机扫码
        time.sleep(10)
        # 3.获取浏览器的cookies
        cookies = self.driver.get_cookies()
        print(cookies)
        # 4.保存cookies
        with open("./cookies2.yaml", "w") as f:
            yaml.safe_dump(data=cookies, stream=f)

    def test_get_cookie(self):

        """
        植入cookie跳过登录
        :return:
        """
        try:
            self.driver.set_page_load_timeout(1)
            # 1.访问MA首页
            self.driver.get("management-xxx.xxx.com")
        except:
            self.driver.set_page_load_timeout(10)
            # 2.获取本地的cookie
            with open("./cookies2.yaml", "r") as f:
                cookies = yaml.safe_load(f)
            # 3.植入cookie
            for c in cookies:
                self.driver.add_cookie(c)
                # 4.访问MA首页
                self.driver.get("management-xxx.xxx.com")

    time.sleep(5)

到了这里,关于selenium自动化的时候网址重定向问题的解决思路的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Selenium解决滑块验证问题:自动化与技巧

    滑块验证是一种常见的人机验证机制,用于识别和防止自动化程序的访问。在爬虫和自动化测试中,我们经常面临需要处理滑块验证的情况。本文将介绍如何使用 Selenium 库处理滑块验证问题。 一、安装 Selenium 首先,确保你已经安装了 Selenium。你可以使用以下命令通过 pip 安

    2024年01月25日
    浏览(50)
  • Selenium 自动化测试如何优雅的解决图片验证码问题

    说到自动化测试那一定避不开登陆注册页面,而大多数情况下这两个简单的页面都存在一个小困难就是验证码,以前我的解决办法都是在测试环境粗暴的写死一个万能验证码,或者给程序一个10秒钟的线程阻塞,手动输入验证码以跳过这个步骤。这样就可以不那么优雅的实现

    2024年02月14日
    浏览(43)
  • 干货整理,Selenium 自动化测试常见异常问题 +解决方法(详细)

    异常1:Stale Element Reference Exception 直译异常 Stale Element Reference Exception:陈旧元素引用异常 首先,啥情况下会出现这异常 简单来说就是,页面元素过期了,无法引用元素 出现这异常的常见原因 The element has been deleted entirely:该元素已被删除【更常见】 The element is no longer attac

    2024年02月08日
    浏览(45)
  • 解决python+selenium自动化,打开谷哥浏览器窗口么会自动关闭问题

    # 导包 from selenium import webdriver from selenium.webdriver.common.by import By # 实例化浏览器,且浏览器对象的初始化放在定义的方法函数外,以全局变量的形式使用 wd = webdriver.Chrome() # 已配置环境变量 def get(): #

    2024年02月14日
    浏览(53)
  • 自动化测试之selenium的chromedriver安装、配置的全部问题详解(保姆级教程)

    因为对自动化测试很感兴趣,本人研究了好一段时间相关selenium的东西,在配置chromedriver的过程中遇到了很多问题,当即在网上找了很多资料,看了很多的文章,可是由于文章太过琐碎(或者说以我的知识理解能力感觉说的都不是很详细),很久都没能解决问题,这导致我学

    2024年02月04日
    浏览(49)
  • selenium+python自动化测试 —— 解决无法启动IE浏览器及报错问题!

    前言:记录启动IE浏览器的报错及解决方法。 错误1: selenium.common.exceptions.WebDriverException: Message: \\\'IEDriverServer.exe\\\' executable needs to be in PATH. Please download from http://selenium-release.storage.googleapis.com/index.html and read up at https://github.com/SeleniumHQ/selenium/wiki/InternetExplorerDriver Exception ignored i

    2024年02月03日
    浏览(57)
  • 【selenium】自动化测试中,元素无法点击定位等问题的解决:js的使用方法

    在自动化测试中经常会遇到使用selenium方法定位元素点击操作失败的情况,例如,我们想实现在浏览器输入http://www.baidu.com,进入百度首页后,鼠标悬停在“更多产品”上,点击“全部产品” 若不使用js的话,代码应该如下图所示: 我们执行代码后,发现会报错 我们该如何解

    2024年02月08日
    浏览(44)
  • python selenium框架解决ip代理框不能自动化登录,解决pyautogui开不了多线程问题

    有时候我们使用python自动化框架的时候,打开一个网页的时候,它会出现出线这一种登录框,我们f12检查不了,用开发者工具强制检查里面没有任何属性. 那这时候我们就可以用到python第三方库:pyautogui PyAutoGUI:是一个Python库,可用于自动化GUI(图形用户界面)程序的任务。它可以让

    2024年02月07日
    浏览(67)
  • Web自动化测试:selenium的使用以及关于driver=webdriver.Firefox()无驱动报错问题

    Selenium是一个用于Web应用程序测试的工具。 主流的自动化测试工具有: web自动化测试:selenium、robot framework App端自动化测试:Appium、Monkeyrunner、UIautomation PC客户端(win32)自动化测试:QTP 接口自动化测试:Jmeter、Postman、httpUnit、RESTClient 云测平台:Testin Testbird 性能测试:Jm

    2024年02月09日
    浏览(70)
  • Selenium自动化chrome驱动版本匹配但是调用浏览器失败:Only local connections are allowed. 问题解决

    第一次发现这种情况,驱动版本完全对的上,但是调用 chrome 就提示 Only local connections are allowed. 然后浏览器调用失败报错。 解决方法: 调用 chrome 驱动的时候加个参数 --whitelisted-ips=\\\"\\\" ,值为空就是把所有调入来源都加入白名单。 ips 的全称是 intrusion prevention system ,解释为入

    2024年02月11日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包