每日简单小妙招:使用python自动登录CSDN等各大网站


1、代码演示

from selenium import webdriver
import time
#去掉自动化控制提示
options = webdriver.ChromeOptions()
options.add_experimental_option('useAutomationExtension', false)
options.add_experimental_option("excludeSwitches", ['enable-automation'])
#打开Chrome浏览器,参数是chromedriver.exe驱动,下载方式下面会详细说
# r是表名\不做为转义符
driver = webdriver.Chrome(r'C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe')
#最大化
driver.maximize_window()
#休眠一秒
time.sleep(1)
#定位到csdn登录页面
driver.get('https://passport.csdn.net/login')
time.sleep(1)
#通过xpath定位到用户名密码登录位置,点击进行用户名和密码的输入
driver.find_element_by_xpath('//*[@id="app"]/div/div/div[1]/div[2]/div[5]/ul/li[2]/a').click()
time.sleep(1)

#输入用户名和密码函数,并进行登录操作
def _login_(username, password):
    input_username = driver.find_element_by_xpath('//*[@id="all"]')
    #点击账户输入框
    input_username.click()
    # 情况输入框中的内容
    input_username.clear()
    # 输入用户名
    input_username.send_keys(username)
	#通过id获取元素
    input_password = driver.find_element_by_id('password-number')
    time.sleep(1)
    input_password.send_keys(password)
    driver.find_element_by_xpath('//*[@id="app"]/div/div/div[1]/div[2]/div[5]/div/div[6]/div/button').click()

username = "xxxxxxx"
password = "xxxxxxxx"
_login_(username, password)



2、过程详解


2.1、chromedriver.exe驱动下载

2.1.1、chromedriver.exe简介

chromeDriver.exe工具是Chrome的WebDriver,可以用于自动化测试,可以操作浏览器,同时selenium操作chrome浏览器需要有ChromeDriver驱动来协助

2.1.2、chromedriver.exe下载地址

下载地址:http://chromedriver.storage.googleapis.com/index.html

2.1.3、如何下载对应得版本

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.1.4、chromedriver.exe存放位置

解压之后,放到Chrome的根目录下
在这里插入图片描述

然后放到python项目的根目录下
在这里插入图片描述

2.2、selenium详解

Selenium 是一个用于Web应用程序测试的工具
框架底层使用JavaScript模拟真实用户对浏览器进行操作。测试脚本执行时,浏览器自动按照脚本代码做出点击,输入,打开,验证等操作,就像真实用户所做的一样,从终端用户的角度测试应用程序。

2.3、元素对象获取

2.3.1、定位

以百度搜索框为例

在这里插入图片描述
右键搜索框 -> 检查,然后就会看到高亮显示的代码,至此定位成功
在这里插入图片描述

2.3.2、获取元素对象

1、通过id : find_element_by_id(‘id’)

‘id’为id属性的值

2、通过class : find_element_by_class(‘class’)

’class’为class属性的值

3、通过xpath : find_element_by_xpath(’’)

右键定位的搜索框代码 -> copy -> copy xpath

2.4、流程

1、打开Chrome浏览器
2、跳转到csdn登录的地址
3、获取账号密码登录元素对象,执行点击操作
在这里插入图片描述
4、定位到账户输入框,输入账号
5、定位到密码输入框,输入密码
6、获取登录按钮元素对象,并执行点击操作



后续打包工具使用pyinstaller,不再多说

3、总结

一些大型网站都有强大的反爬机制,有时会进性滑动窗口和图片的验证操作,当然利用python也能快速的实现
在这里插入图片描述

欲知后事如何,请看下回分解

未完待续…

  • 24
    点赞
  • 83
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 28
    评论
以下是使用 Python Playwright 对 CSDN 登录进行 UI 自动化分层设计的完善示例: 1. 安装 Playwright 首先需要安装 Playwright Python 库,可以使用以下命令进行安装: ```python pip install playwright ``` 2. 创建项目目录结构 在本地创建一个项目目录,例如 "CSDN_Automation",并在该目录下创建以下文件和文件夹: - `main.py`:主程序文件 - `pages` 文件夹:存放页面对象类文件 - `tests` 文件夹:存放测试用例文件 3. 创建页面对象类 在 `pages` 文件夹下创建一个 `CSDNLoginPage.py` 文件,该文件定义了 CSDN 登录页面的所有元素和操作: ```python from playwright.sync_api import Page class CSDNLoginPage: def __init__(self, page: Page): self.page = page def navigate(self): self.page.goto("https://passport.csdn.net/login") def input_username(self, username: str): self.page.fill("[name='username']", username) def input_password(self, password: str): self.page.fill("[name='password']", password) def click_login_button(self): self.page.click("[data-type='account']") def login(self, username: str, password: str): self.navigate() self.input_username(username) self.input_password(password) self.click_login_button() ``` 在该页面对象类中,我们定义了 CSDN 登录页面的所有元素和操作,包括页面导航、输入用户名和密码、点击登录按钮等。通过这样的封装,我们可以在测试用例中直接调用 `login` 方法来完成登录操作。 4. 创建测试用例 在 `tests` 文件夹下创建一个 `test_login.py` 文件,该文件定义了 CSDN 登录的测试用例: ```python import pytest from playwright.sync_api import Playwright, Page from pages.CSDNLoginPage import CSDNLoginPage @pytest.fixture(scope="module") def csdn_login_page(playwright: Playwright) -> Page: with playwright.chromium.launch(headless=False) as browser: with browser.new_context() as context: page = context.new_page() csdn_login_page = CSDNLoginPage(page) yield csdn_login_page def test_login_success(csdn_login_page: CSDNLoginPage): csdn_login_page.login("your username", "your password") assert "CSDN" in csdn_login_page.page.title() ``` 在该测试用例中,我们首先使用 `pytest.fixture` 装饰器定义了一个 `csdn_login_page` 的 fixture,用于创建 `CSDNLoginPage` 实例并返回该实例中的 `page` 对象。在 `test_login_success` 测试用例中,我们调用 `csdn_login_page` 实例的 `login` 方法来完成登录操作,并通过断言验证登录成功后页面标题中是否包含 "CSDN"。 5. 运行测试 最后,在项目目录下运行以下命令来执行测试: ```python python -m pytest ``` 这样就完成了基于 Python Playwright 的 CSDN 登录 UI 自动化分层设计的示例。在实际应用中,我们可以根据需要增加更多的页面对象类和测试用例,从而实现更全面的 UI 自动化测试。
评论 28
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Thecoastlines

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值