web自动化中如何使用cookie登录

web自动化中如何使用cookie登录

做web自动化的时候,登录是关键的一步。但每次频繁的输入用户名、密码导致心态有些爆炸,所以使用cookie登录势在必行。下面是两种场景的cookie登录。

一. cookie登录1

这种是界面地址跳转的情况,是大多数登录场景。

test_login_sg.py

from common.config import COOKIE_PATH

from po.demo import Sg

import time

from common.utils import get_driver

def account_login():

"""

账号密码登录

"""

driver = get_driver()

page = Sg(driver)

page.get(page.url)

page.phone.send_keys('***')

page.password.send_keys('***')

page.sure.click()

page.shop_name.click()

cookies = page.get_cookies()

with open(COOKIE_PATH, 'w+') as f:

f.write(str(cookies))

return driver

def cookie_login():

"""

cookie登录

"""

driver = get_driver()

page = Sg(driver)

page.get(page.url)

with open(COOKIE_PATH, "r") as f:

cookie_li = eval(f.read())

page.add_cookies(cookie_li)

page.get(page.shop_url)

time.sleep(30)

if __name__ == '__main__':

# account_login()

cookie_login()

sg_page.py

from poium import Page, Element

class Sg(Page):

url = "https://passporttest.senguo.me/#/mobileLogin"

shop_url = "https://cashiertest.senguo.me/m/#/boss/homeCenter/home?shopId=451"

phone = Element(xpath='//input[@placeholder="请输入手机号"]')

password = Element(xpath="//input[@placeholder='请输入密码']")

sure = Element(xpath="//div[text()='确认']")

shop_name = Element(xpath="//span[text()='砬之眼']")

二. cookie登录2

这种情况是url不跳转的情况,常见于登录某网站。

test_login_veer.py

def login_veer():

"""

账号密码登录veer

"""

page = VeerLoginPage(driver)

page.get(page.url)

page.login_entrance.click()

page.phone.send_keys('***')

page.password.send_keys('***')

page.login.click()

page.picture.click()

cookies = page.get_cookies()

with open(COOKIE_PATH, 'w+') as f:

f.write(str(cookies))

return driver

def login_veer_in_cookie():

"""

使用cookie登录

"""

page = VeerLoginPage(driver)

page.get(page.url)

with open(COOKIE_PATH, "r") as f:

cookie_li = eval(f.read())

page.add_cookies(cookie_li)

page.get(page.url)

driver.refresh()

time.sleep(40)

return driver

veer_page.py

class VeerLoginPage(BasePage):

login_entrance = Element(partial_link_text="登录")

phone = Element(xpath="//input[@placeholder='请输入您的手机号/邮箱']")

password = Element(xpath="//input[@placeholder='请输入密码']")

login = Element(xpath="//button[text()='登 录']")

person = Element(xpath="//div[@class='wide_header right_off_canvas_toggle_menu']")

log_out = Element(xpath="//a[text()='退出登录']")

success_flag = Element(xpath="//figure[@class='account']") # 登录完首页成功标识

picture = Element(xpath="//nav/a[text()='照片']")

三. 后记

新功能调整后使用cookie登录不上?

问题在于cookie,为什么cookie有问题呢?最近新功能有上线,前后端代码有调整,导致获取不到cookie依赖的关键信息,但是开发对于这些并不自知,怎么解决?

去子级页面获取cookie。

没有新功能,以前好好的,现在登录不上?

服务器如阿里有反爬策略,服务区端有很多针对selenium的策略,只要人家配置了,非常规操作会被受限,怎么解决?

找运维加白名单。

相关推荐

煎火腿肠的做法
365买球官网入口

煎火腿肠的做法

📅 10-06 👁️ 8803
志源名字打分、志源姓名免费测试、生辰八字、五格分析、名字寓意
白衣天使的意思
beat365中国在线体育

白衣天使的意思

📅 07-19 👁️ 4789
云迁移的21个最佳实践
365bet网站

云迁移的21个最佳实践

📅 07-28 👁️ 7342
PPTP vs. L2TP:选择最适合您的代理协议
365bet网站

PPTP vs. L2TP:选择最适合您的代理协议

📅 10-18 👁️ 9896
怎样和陌生人交朋友
365买球官网入口

怎样和陌生人交朋友

📅 02-16 👁️ 4357
軿的意思
beat365中国在线体育

軿的意思

📅 02-16 👁️ 4580
《QQ》怎么查看特别关心有哪些
beat365中国在线体育

《QQ》怎么查看特别关心有哪些

📅 08-17 👁️ 8796
颠覆的一届世界杯 1/8决赛4场大球23场仅1平
365bet网站

颠覆的一届世界杯 1/8决赛4场大球23场仅1平

📅 01-02 👁️ 4455