统计selenium模拟登录的一些方法

驱动安装

之前常常是先根据浏览器版本下载对应版本的驱动,但其实有一个办法是可以自动获取当前浏览器的版本,自动下载对应的驱动到本地的。

    from webdriver_manager.chrome import ChromeDriverManager
    browser = webdriver.Chrome(ChromeDriverManager().install())

去掉webdriver痕迹

有一些网站,当用webdriver访问时,会提示请求失败。这时,就需要去掉webdriver痕迹,模拟正常登录。

    from selenium.webdriver import ChromeOptions
    options = ChromeOptions() # 启动配置参数
    options.add_argument("--disable-blink-features=AutomationControlled") # 增加参数
    browser = webdriver.Chrome(ChromeDriverManager().install(), options=options)

如果还需去掉受自动测试软件控制的提示,则需要添加如下参数

    options.add_experimental_option('useAutomationExtension', False)

xpath定位元素的tips

//* 代表选取文档中的所有元素
    # 查找所有元素,找到文案包含“登录”的元素,点击
    browser.find_elements(By.XPATH, "//*[contains(text(), '登录')]")[0].click()
查找特定元素
    placeholder = '用户名'
    account='username'
    # 选取所有input元素(不管位置),拥有值为{placeholder}的placeholder属性
    browser.find_elements(By.XPATH, f"//input[@placeholder='{placeholder}']")[0].send_keys(account)

上方代码以f开头,表示在字符串内支持大括号内的python表达式

拖拽元素
    from selenium.webdriver import ActionChains
    # 找到drag元素
    drag = browser.find_elements(By.XPATH, "//span[@class='btn_slide']")[0]
    # 调用ActionChains()类,并将浏览器驱动browser作为参数传入
    action_chains = ActionChains(browser)
    # 模拟拖拽,拖拽到某个坐标然后松开
    action_chains.drag_and_drop_by_offset(drag, 320, 0)
    # 执行ActionChains()中储存的所有操作,可以看做是执行之前一系列的操作
    action_chains.perform()

相关推荐

  1. 统计selenium模拟登录一些方法

    2024-04-21 23:28:06       30 阅读
  2. vue 工作记录登录一些方法

    2024-04-21 23:28:06       54 阅读
  3. 模型计算量 MAC/FLOPs 手动统计方法

    2024-04-21 23:28:06       25 阅读
  4. selenium其它使用方法

    2024-04-21 23:28:06       49 阅读
  5. 【Python+Selenium学习系列4】Selenium常用方法

    2024-04-21 23:28:06       39 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-21 23:28:06       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-21 23:28:06       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-21 23:28:06       87 阅读
  4. Python语言-面向对象

    2024-04-21 23:28:06       96 阅读

热门阅读

  1. 计算机视觉入门

    2024-04-21 23:28:06       42 阅读
  2. Linux配置路由服务器

    2024-04-21 23:28:06       31 阅读
  3. C语言表达式求值、隐式类型转换、算数转换

    2024-04-21 23:28:06       37 阅读
  4. 统一SQL-number/decimal/dec/numeric转换

    2024-04-21 23:28:06       26 阅读
  5. 什么是显卡服务器?

    2024-04-21 23:28:06       34 阅读
  6. Linux 中解压不同的压缩文件用到不同的命令详解

    2024-04-21 23:28:06       33 阅读
  7. 计算机网络(第7版谢希仁)笔记

    2024-04-21 23:28:06       29 阅读
  8. 蓝桥杯刷题-游戏

    2024-04-21 23:28:06       32 阅读