python爬虫selenium行为链登录12306(滑动验证码滑块)(解决特征识别)

driver.execute_script(script)

输入账号

driver.find_element_by_id(‘J-userName’).send_keys(‘123@163.com’)

输入密码

driver.find_element_by_id(‘J-password’).send_keys(‘xxxxxxx’)

点击登陆

driver.find_element_by_id(‘J-login’).click()

等待2秒钟,不要点的太快,以免被识别或者以免网页加载跟不上。

time.sleep(2)

滑动

定位 滑块标签

span = driver.find_element_by_id(‘nc_1_n1z’)

actions = ActionChains(driver) # 行为链实例化

time.sleep(2) # 等待2秒钟

经截图测量,滑块需要滑过的距离为300像素

actions.click_and_hold(span).move_by_offset(300, 0).perform() # 滑动


解决浏览器识别

其中的以下这几行代码,可用去除浏览器对selenium的识别,如图可以使浏览器页面不再显示图中“Chrome正受到自动测试软件的控制”字样。

from selenium.webdriver import ChromeOptions

option = ChromeOptions()

option.add_experimental_option(

  • 12
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,请稍等片刻,我马上为您查找并提供该代码。以下是使用Selenium自动化测试框架编写的登录12306官网验证滑动滑块登录成功的代码: ```python # 导入selenium相关的模块 from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By # 开启chrome浏览器,进入12306登录页面 driver = webdriver.Chrome() driver.get('https://kyfw.12306.cn/otn/login/init') # 显示等待直到页面完全加载 element = WebDriverWait(driver, 5).until( EC.presence_of_element_located((By.ID, 'J-loginImg')) ) # 定位到滑块元素 slider = driver.find_element_by_id('J-slider') # 使用ActionChains模拟鼠标操作,按住滑块拖动到最右边 ActionChains(driver).click_and_hold(slider).perform() ActionChains(driver).move_by_offset(300, 0).perform() # 释放鼠标 ActionChains(driver).release().perform() # 等待滑块验证通过 WebDriverWait(driver, 5).until_not( EC.text_to_be_present_in_element((By.ID, 'J-loginImg'), '拖动完成验证') ) # 定位到登录按钮并点击 driver.find_element_by_id('J-login').click() # 验证是否登录成功 WebDriverWait(driver, 10).until( EC.presence_of_element_located((By.CLASS_NAME, 'my_order')) ) # 打印登录成功信息 print('登录成功!') # 关闭浏览器 driver.quit() ``` 以上是关于使用Selenium编写登录12306官网验证滑动滑块登录成功的代码,希望对您有所帮助。如果您有更多的问题,请随时问我。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值