selenium模拟登录考拉海购网站

题目描述

使用selenium,webdriver 模拟登录,已经输入账号密码,滑动验证也操作成功了,但是还是Error,后台无报错。
前端截图-->
selenium模拟登录考拉海购网站
后台截图-->
selenium模拟登录考拉海购网站

题目来源及自己的思路

首次尝试使用selenium,想要测试一下模拟的账户登录,从输入账号、密码,滑动验证,都是获取到了元素正常执行的,我以为我没有家header,服务器拒绝了我的登录请求,添加了header后还是一样的结果,我注意到了html的error,与服务器之间的通讯失败,但是我不清楚为什么失败了

相关代码

粘贴代码文本(请勿用截图)

# -*- coding: utf-8 -*-

# @Author: Lingx99

# @Date: 2022-06-22 09:05:00

# @Last Modified by: mac

# @Last Modified time: 2022-06-27 16:26:54

import requests

import sys

import io

import time

from selenium import webdriver

from selenium.webdriver.common.action_chains import ActionChains

from selenium.webdriver import ActionChains

from selenium.webdriver.support.wait import WebDriverWait

options = webdriver.ChromeOptions()

options.add_argument('user-agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36"')

browser = webdriver.Chrome(chrome_options=options)

wait=WebDriverWait(browser,10)

sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf8') #改变标准输出的默认编码

# browser = webdriver.Chrome()

browser.implicitly_wait(10)

account={'user':'18968911111','password':'xxxxb666'}

class ServiceConfig():

def prepareWork(self,url):

browser.implicitly_wait(5)

browser.find_element_by_class_name('agree-proto').click()

browser.implicitly_wait(3)

login_iframe = browser.find_element_by_id('alibaba-login-box')

browser.switch_to.frame(login_iframe)

browser.find_element_by_css_selector('i.iconfont.icon-sms').click()

time.sleep(1)

# account_model=browser.find_element_by_css_selector('a.password-login-tab-item')

browser.find_element_by_css_selector('a.password-login-tab-item').click()

browser.implicitly_wait(3)

time.sleep(1)

# 账号

browser.find_element_by_id('fm-login-id').send_keys(account['user'])

time.sleep(1)

# 密码

browser.find_element_by_id('fm-login-password').send_keys(account['password'])

time.sleep(2)

move_iframe = browser.find_element_by_id('baxia-dialog-content')

browser.switch_to.frame(move_iframe)

# 滑块 id:nc_1_n1z

move_pan = browser.find_element_by_xpath('//*[@id="nc_1_n1z"]')

# 调用ActionChains()类,并将浏览器驱动browser作为参数传入

action_chains = ActionChains(browser)

# 模拟拖拽,拖拽到某个坐标然后松开

action_chains.drag_and_drop_by_offset(move_pan, 270, 0)

# 执行ActionChains()中储存的所有操作,可以看做是执行之前一系列的操作

action_chains.perform()

# 滑框 id:nc_1__scale_text

time.sleep(1)

browser.switch_to.default_content()

browser.switch_to.frame(login_iframe)

login_button = browser.find_element_by_css_selector('button.fm-button')

login_button.click()

browser.implicitly_wait(3)

if __name__=='__main__':

url = 'https://account.kaola.com/login.html'

sc=ServiceConfig()

sc.prepareWork(url)

# browser.save_screenshot('./picture1.jpg')

# 打印网页源代码

# print(browser.page_source.encode('utf-8').decode())

# browser.quit()

你期待的结果是什么?实际看到的错误信息又是什么?

如何可以正常登录?

以上是 selenium模拟登录考拉海购网站 的全部内容, 来源链接: utcz.com/p/938493.html

回到顶部