首页 > 其他分享 >实现web登录界面自动登录

实现web登录界面自动登录

时间:2023-10-09 22:14:27浏览次数:36  
标签:username web 界面 登录 webdriver selenium driver elem password

调用selenium库,可以实现校园网账号自动登录,最开始一直出现selenium “could not be scrolled into view”的错误,经过查资料,发现可能是以下原因:

没有加延时,网页还没有加载

添加time.sleep(5),但依然出现问题

可能满足属性的元素不止一个,首先查找的是隐藏的元素

增加匹配属性,在原有name属性的前提下,加入class属性,解决了问题。

中间也考虑直接向隐藏的属性通过js功能(river.execute_script("document.querySelector('input[name="upass"]').value = 'your_password'"))直接添加,但是发现没起作用。

成功代码如下:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.firefox.service import Service
from selenium.webdriver.firefox.options import Options
import time as t

username = 'your'
password = 'your'

options = Options()
options.binary_location = '/snap/firefox/3206/usr/lib/firefox/firefox'  # 替换为您的 Firefox 可执行文件路径
service = Service('/snap/bin/geckodriver')  # 替换为您的 GeckoDriver 可执行文件路径
driver = webdriver.Firefox(options=options, service=service)

# 创建Firefox浏览器驱动对象
#driver = webdriver.Firefox(executable_path=driver_path)
# 启动Chrome浏览器
#driver = webdriver.Firefox()

# 打开网页
driver.get('http:')
#driver.get('https://www.baidu.com/')
t.sleep(3)

# 获取用户名和密码输入框的元素
username_elem = driver.find_element(By.XPATH, '//input[@class="edit_lobo_cell" and @name="DDDDD"]')

'''
for ele0 in element0:
    if ele0.is_displayed():
        ele0.click()

'''
#driver.execute_script("arguments[0].setAttribute('value', 'SY20213071377')", username_elem)
#driver.execute_script("document.querySelector('input[name=\"upass\"]').value = 'zz030631272@yyy'")
#username_elem = driver.find_element(By.NAME, 'DDDDD')
password_elem = driver.find_element(By.XPATH, '//input[@class="edit_lobo_cell" and @name="upass"]')
#driver.execute_script("arguments[0].setAttribute('value', 'zz030631272@yyy')", password_elem)

# 输入用户名和密码
username_elem.click()
username_elem.send_keys(username)
t.sleep(1)
password_elem.click()
password_elem.send_keys(password)
t.sleep(1)
# 提交表单
submit_button = driver.find_element(By.XPATH,'//input[@type="submit"]')
submit_button.click()
t.sleep(3)
# 关闭浏览器
driver.quit()

标签:username,web,界面,登录,webdriver,selenium,driver,elem,password
From: https://www.cnblogs.com/YTZt/p/17753296.html

相关文章

  • vue显示echarts报错——echarts未在vue界面中定义init——TypeError: Cannot read pro
    问题描述本来按照网上的教程说是想要定义一个全局变量,就不需要在每个需要用到echarts组件的vue页面里面重新定义了,直接使用就行,然后就报错了;问题解决我觉得应该是我的全局变量定义错误了,但是吧,我就直接改成在该vue页面定义了它,然后再使用:就没有再使用到那个全局变量,直接这......
  • sourcetree界面卡死,改用命令行提交
    在github上创建了空仓库https://github.com/wantnon/UE-Yang-426,并clone到了本地(C:/GitHub2/UE-Yang-426),然后把自己修改过的ue4.26源码拷贝到这个路径,用sourcetree提交,结果由于一次性添加文件太多,“暂存所有”这一步sourcetree界面卡死,所以只能考虑用命令行提交了,问gpt4:于是打......
  • WebSocketTool WebSocket调试工具使用说明
    @[TOC]WebSocketTool概述1WebSocketTool简介        WebSocketTool是一款通用的WebSocket调试工具,基于QT框架开发,可以运行在Windows、Linux和MacOS平台下,具备良好的跨平台能力。WebSocketTool调试工具无需安装,下载后解压就可以使用,是一款绿色的软件,易于部署和使用。可......
  • 2023-02-24windows开启WebDAV
    +++title="windows开启WebDAV"description=""date=2023-02-24T19:56:44+08:00featured=falsecomment=truetoc=truereward=truecategories=[""]tags=["windows"]series=[]images=[]+++开启WebDAV......
  • C#调用WebService
     一、前言在日常工作中,如果涉及到与第三方进行接口对接,有的会使用WebService的方式,这篇文章主要讲解在.NETFramework中如何调用WebService。首先我们创建一个WebService,里面有两个方法:一个无参的方法,一个有参的方法:创建好了WebService以后,把WebService部署到IIS上,并确保可......
  • .net 调用webservice 总结
    最近做一个项目,由于是在别人框架里开发app,导致了很多限制,其中一个就是不能直接引用webservice。我们都知道,调用webserivice最简单的方法就是在"引用" 那里点击右键,然后选择"引用web服务",再输入服务地址。确定后,会生成一个app.config里面就会自动生成了一些配置信息。现......
  • Rust actix-web框架
    目录Github官方文档设置国内镜像添加依赖官方示例下载依赖并编译运行Githubhttps://github.com/actix/actix-web官方文档https://actix.rs/docs/getting-started设置国内镜像cd~/.cargo#创建config文件vimconfig#添加如下镜像源[source.crates-io]registry="......
  • 00webpack之前期准备
    1环境准备1.1安装git(可选)Git官网下载地址Git安装步骤1.2安装nodeNode官网下载地址安装完成后,查看node版本node-vnpm是随同node一起安装的包管理工具,安装完node以后,就可以直接使用了安装淘宝镜像:使用cnpm命令(可选)npminstall-gcnpm--registry=https://......
  • 01webpack基础知识
    1概述1.1什么是webpack1、webpack是一种前端资源构建工具,一个静态模块打包器(modulebundler)。在webpack看来,前端的所有资源文件(js/json/css/img/less/...)都会作为模块处理。它将根据模块的依赖关系进行静态分析,打包生成对应的静态资源(bundle)2、webpack是一个前......
  • Web App Manifest
    主要作用在启动web应用程序和加载应用程序的内容之间创建了一个平滑的过渡。使用方式<linkrel="manifest"href="/manifest.json"/>manifest.json{"name":"HackerWeb","short_name":"HackerWeb","start_url":......