Python wssh+seleniumwssh(webssh库)

本文介绍了如何使用Python的wssh库配合Selenium进行Web页面上的SSH连接,实现自动化输入命令并截取屏幕截图,适用于需要记录操作过程的场景。

Python wssh+selenium

wssh(webssh库)---- web页面的ssh工具

cmd 直接运行“wssh” 启动;web访问地址:127.0.0.1:8888

selenium + wssh //实现自动化输入命令,此方法可结果命令需要截图的问题,但非交互界面无法以文本的形式获取命令执行返回结果。适合需要截图留证的地方使用。

from selenium import webdriver

from selenium.webdriver.firefox.options import Options

from selenium.webdriver.common.by import By

from selenium.webdriver.common.action_chains import ActionChains

from selenium.webdriver.common.keys import Keys 

from selenium.webdriver.firefox.service import Service

from selenium.webdriver.support.ui import WebDriverWait  

from selenium.webdriver.support import expected_conditions as EC

import time

options = Options()

options.add_argument('--headless') #可设置隐藏,在driver=webdriver.Firefox()的options参数应用

service=Service('geckodriver.exe') #驱动路径,在driver=webdriver.Firefox()的service参数英语

driver = webdriver.Firefox() #根据自身环境填写service参数和options参数

driver.maximize_window() #最大化界面

driver.get('http://127.0.0.1:8888') #访问提前运行好的wssh工具

time.sleep(2) #等待页面加载

WebDriverWait(driver,30).until(EC.presence_of_element_located((By.XPATH,'//*[@id="connect"]/button[1]'))) #等待元素加载

driver.find_element(By.XPATH,'//*[@id="hostname"]').send_keys(Keys.CONTROL+'a')#ctrl+a全选

driver.find_element(By.XPATH,'//*[@id="hostname"]').send_keys('192.168.100.100') #填写ip

driver.find_element(By.XPATH,'//*[@id="username"]').send_keys(Keys.CONTROL+'a')

driver.find_element(By.XPATH,'//*[@id="username"]').send_keys('admin')

driver.find_element(By.XPATH,'//*[@id="password"]').send_keys(Keys.CONTROL+'a')

driver.find_element(By.XPATH,'//*[@id="password"]').send_keys('123@admin')

driver.find_element(By.XPATH,'//*[@id="connect"]/button[1]').click() #开始连接

time.sleep(3) #等待连接成功,填写一个可正常连接的时间

try: #连接成功即会出现canvas元素,连接失败则无法找到canvas元素。

    canvas = driver.find_element(By.XPATH,'//*[@id="terminal"]/div/div[2]/canvas[4]')   

except:

print('连接失败')

else:

    actions = ActionChains(driver)  # 创建ActionChains对象  

    actions.move_to_element(canvas)  # 将鼠标移动到元素上  

    actions.send_keys('dis ip int br\n')  

    actions.perform()  # 执行鼠标动作链

    time.sleep(2) #等待命令执行结果

    canvas.screenshot("1.png") #截图

driver.quit() #退出浏览器

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值