某宝页面登陆滑块验证 selenium + chromedriver (亲测)

selenium + chromedriver 模拟用户登陆。主要解决登录滑块的问题。

滑块被检验出来为 webdriver 驱动

先把chromedriver.exe文件.bak 备份一份

下载nodepadd++ 编辑器,右击打开 chromedriver.exe ,ctrl + F, 输入 $cdc

将红色划线部分内容随便改一下,位数长度不变

from selenium import webdriver
import time
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.by import By

options = webdriver.ChromeOptions()
user_ag = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"
options.add_argument('user-agent=%s' % user_ag)

driver = webdriver.Chrome(executable_path="chromedriver", options=options)
# 打开某宝登录页面
driver.get("某宝登录地址")
# 定义js代码
script = "Object.defineProperty(navigator,'webdriver',{get: ()=> false,});"
# 执行js代码
driver.execute_script(script)
time.sleep(2)
driver.find_element(By.NAME,'fm-login-id').send_keys("用户名")
time.sleep(2)
driver.find_element(By.NAME,'fm-login-password').send_keys("密码")
time.sleep(2)
try:
    # 找到滑块
    slider = driver.find_element(By.XPATH,"//span[contains(@class, 'btn_slide')]")
    # 判断滑块是否可见
    if slider.is_displayed():
        # 点击并且不松开鼠标
        ActionChains(driver).click_and_hold(on_element=slider).perform()
        # 往右边移动258个位置
        ActionChains(driver).move_by_offset(xoffset=258, yoffset=0).perform()
        # 松开鼠标
        ActionChains(driver).pause(0.5).release().perform()
except:
    pass
time.sleep(2)
driver.find_element(By.XPATH,'//*[@id="login-form"]/div[4]/button').click()

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值