网站首页 > 基础教程 正文
=====功能:调用本地程序,自动打开指定浏览器并自动登录指定的网站=======
====如实现打开本地VPN后,自动登录内网======
from selenium import webdriver
from time import sleep
import os
if __name__=="__main__":
driver=None
#调用本地应用程序
def createProcess():
print('您要打开的程序的完整路径,例如:D:\Program Files\QQ\Bin\QQ.exe\n')
str=input('请输入您要打开的程序的完整路径:')
#print(type(str))
if str=='quit':
print("====已跳过当前程序====")
return
path=os.path.isfile(str)
if path:
os.popen(str)
print('您需要打开的程序的完整路径是:%s'%str,'\t打开中,请稍等\n')
else:
print('您需要打开的程序的完整路径是:%s'%str,'路径不存在,请重新输入\n')
print('跳出当前程序,请输入:quit')
createProcess()#递归
#打开浏览器,自动登录
def autoOpenBrowserLogin():
global driver#全局常量
print("请等待,即将打开浏览器。。。")
driver=webdriver.Chrome()#打开谷歌浏览器
driver.get("http://xxx.yyyy.zzz/")#请求的地址
sleep(5)
#让登录框可见
js = "document.getElementById('login_tenment_ul').style.display='block'" #编写JS语句
driver.execute_script(js) #执行JS
sel=driver.find_element_by_xpath('//*[@id="tab_box0"]/form/div[1]/a')
#print("省份选择",sel.text)
xz=sel.find_element_by_xpath('//*[@id="bg_city_xz"]')
print("您选择的省份是:",xz.text)
xz.click() #点击
driver.find_element_by_xpath('//input[@id="user_id"]').send_keys('user1')
js = "document.getElementById('userpass0').style.display='block'" #编写JS语句
driver.execute_script(js) #执行JS
sleep(1)
#密码是双层input标签,需要先找到有value值的标签,点击下,然后清空无value值的input,最后再输入值
driver.find_element_by_xpath('//input[@id="userpass0"]').click()
pwd=driver.find_element_by_xpath('//input[@id="userpass"]')
pwd.clear()
pwd.send_keys('password123456')
driver.find_element_by_xpath('//button[@tabindex="3"]').click()#点击登录
sleep(1)
print("登录中。。。")
#自动关闭浏览器,需输入数字1
def closeBrowser():
sleep(5)
msg=input("请确认是否关闭浏览器,确认关闭请输入数字1====》》》》》:\n\n")
print("您输入的数字是:%s"%msg,"已确认关闭浏览器\n\n")
if msg=='1':
print("5秒后自动关闭浏览器。。。")
sleep(5)
print("浏览器已关闭")
driver.quit()
#调用
createProcess()
autoOpenBrowserLogin()
closeBrowser()
主要涉及selenium、os、time、JS。
本机的应用程序调用 os.popen();
猜你喜欢
- 2024-10-12 纯JS手写轮播图(代码逻辑清晰,通俗易懂)
- 2024-10-12 谷歌浏览器任意文件访问漏洞(CVE-2023-4357)复现
- 2024-10-12 Dom节点优化方案 dom节点树例题
- 2024-10-12 自动化测试工程师的学习方法和逻辑
- 2024-10-12 Web Components 系列(八)——自定义组件的样式设置
- 2024-10-12 JavaScript,自制弹窗(练习) js弹出自定义窗口
- 2024-10-12 掌握 onmouseover 事件:打造动态 HTML 体验
- 2024-10-12 Vue 自定义指令详解-按钮级权限示例(干货)
- 2024-10-12 中高级渗透测试员都必须掌握的Web安全测试知识库,速收藏!
- 2024-10-12 碎片时间学编程「173]:显示所有指定的元素
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)