selenium 自动登入博客

本文详细介绍如何使用Selenium和ChromeDriver进行动态网页加载及自动化测试。从下载匹配版本的ChromeDriver开始,到通过Python代码实现浏览器自动化操作,包括页面导航、元素定位和交互等关键步骤。
部署运行你感兴趣的模型镜像

先下载 chrome 驱动,参考selenium 加载动态网页.
需要注意的是,下载的驱动版本要和浏览器当前版本匹配!!

查看浏览器版本

在这里插入图片描述
我的浏览器版本不是最新,下载时要选择对应的76版本

def un_zip(file_name, to_dir='./'):
    """unzip zip file"""
    zip_file = zipfile.ZipFile(file_name)
    if os.path.isdir(to_dir):
        pass
    else:
        os.mkdir(to_dir)
    for names in zip_file.namelist():
        zip_file.extract(names, to_dir)
    zip_file.close()

    
def download_driver(to_dir='./', version=''):
    print('install chrome-driver first')
    url = 'http://npm.taobao.org/mirrors/chromedriver/LATEST_RELEASE'
    if len(version)>0:
        url = 'http://npm.taobao.org/mirrors/chromedriver/LATEST_RELEASE_'+version
        
    version = requests.get(url).content.decode('utf8')
    driver_file = 'http://npm.taobao.org/mirrors/chromedriver/' + version + '/chromedriver_win32.zip'
    r = requests.get(driver_file)
    download_zip = "chromedriver_win32.zip"
    with open(download_zip, "wb") as code:
        code.write(r.content)
    un_zip(download_zip,  to_dir)
    os.remove(download_zip)

在交互式环境中调试 selenium

我在左侧的 jupyter 环境中输入代码,右边由驱动打开的浏览器会自动执行,大家可以玩一玩哦

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait

import time
import requests
import zipfile
import os

#初始化一个浏览器(如:谷歌,使用Chrome需安装chromedriver)
try:
    driver = webdriver.Chrome()
except Exception as e:
    download_driver(to_dir='./', version='76')
    driver = webdriver.Chrome()

driver.get("http://blog.youkuaiyun.com/")

在这里插入图片描述

模拟点击

  • find_element_by_id
  • find_element_by_name
  • find_element_by_xpath
  • find_element_by_link_text
  • find_element_by_partial_link_text
  • find_element_by_tag_name
  • find_element_by_class_name
  • find_element_by_css_selector
a = driver.find_element_by_class_name('userinfo').find_element_by_tag_name('a')
# 直接用 a.click() 不起作用
driver.execute_script("arguments[0].click();", a)

进入到登入界面,接下来就要点击“账号密码登录”
在这里插入图片描述

driver.find_element_by_class_name('main-select') \
.find_element_by_partial_link_text('账号密码登录').click()

在这里插入图片描述

username = 'itnerd'
password = ''

ubox = driver.find_element_by_id("all")
ubox.clear()
ubox.send_keys(username)

pbox = driver.find_element_by_id("password-number")
pbox.clear()
pbox.send_keys(password)

buttons = driver.find_elements_by_tag_name("button")
for b in buttons:
    if b.text == "登录":
        b.click()
        break

在这里插入图片描述

完犊子。。。。

您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

颹蕭蕭

白嫖?

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值