本文章仅用于记录个人学习内容(因为是验证式学习,所以代码基本是Ctrl C,Ctrl V )
若有侵权请联系!
本文章涉及到的代码和参考资料如下: (感谢各位博主的无私分享)
涉及到的问题:
1, 摄像头ID,PW 的网页登录
Python实现自动控制登录网页_python自动登录网站_keepgoong的博客-CSDN博客Python使用selenium自动打开网页、输入账号密码并登录_selenium输入账号密码_丿潇湘丶书笛的博客-CSDN博客
2,Chrome浏览器的闪退现象
ChromeOption操作_chromeoptions_杨小卷~的博客-CSDN博客
3,浏览器的全屏化
4,输入框元素的定位,赋值,操作
Python爬虫Xpath定位数据的两种方法_python_脚本之家
5, 切换到新弹出网页 ( 这次没用上)
コード
from selenium import webdriver
# 调用浏览器驱动,实现浏览器操作类化
from selenium.webdriver.common.by import By
# 查找,定位元素信息
import time
# 延迟 等到网页及元素相应
from selenium.webdriver.common.action_chains import ActionChains
# 模拟鼠标操作的类化,本文章无用
def login_frame(url, username, password):
# 指向驱动位置
# path = Service('../venv/chromedriver.exe')
# driver = webdriver.Chrome(service=path)
# 本次测试没有遇到驱动问题,所以直接调用相关浏览器
options = webdriver.ChromeOptions()
options.add_experimental_option('detach', True)
driver = webdriver.Chrome(options=options) # 打开浏览器并防止自动关闭(闪退)
# 打开链接
driver.get(url)
time.sleep(1)
# 找到输入框,这里需要自行在F12的Elements中找输入框的位置,然后在这里写入
user_input = driver.find_element(by=By.XPATH, value='/html/body/div[2]/table/tbody/tr/td[2]/div/div[3]/input')
pw_input = driver.find_element(by=By.XPATH, value='/html/body/div[2]/table/tbody/tr/td[2]/div/div[4]/input[2]')
login_btn = driver.find_element(by=By.XPATH, value='/html/body/div[2]/table/tbody/tr/td[2]/div/div[5]/button')
# 输入用户名
user_input.send_keys(username)
# 输入密码
pw_input.send_keys(password)
time.sleep(1)
login_btn.click()
# 点击登录
time.sleep(10)
# 登陆后url不会变,但是界面会变,新界面的各个元素信息的相应需要时间,这里建议 等待10秒
# 弹出框操作
# driver.switch_to.window(driver.window_handles[-1]) # 切换到新打开的窗口
return driver
# 此段代码放在最后
if __name__ == '__main__':
# 定义目标URL信息
aim_url = {
# 由于没有厂家的摄像头键入IP后显示的链接不一样,请自行复制粘贴,这里以HIKVISION为例
'url': 'http:// 摄像头的IP地址 /doc/page/preview.asp',
'username': 'ID',
'password': 'PW'
}
# 登录
driver = login_frame(aim_url['url'], aim_url['username'], aim_url['password'])