老实说 Selenium 平常基本不用,打算拿起来用的原因是因为公司内经常会有人找我申请 DNS,而我每次都要打开公司的那个系统把相关的信息填进去。时间长了就有点烦了。
所以花了几个小时,输入一些基本的信息(申请人,用途,域名,IP),用 Selenium 脚本完成自动登录,自动补全信息。提交。看到效果感觉还是挺爽的。
安装 Selenium 库
pip install selenium
pip install logzero # 一个方便的日志库
创建一个工作目录 SeleniumStudy
从 Chromium 官网下载 ChromeDriver for windows https://sites.google.com/a/chromium.org/chromedriver/downloads
下载解压完,放到工作目录中。
创建一个文件main.py
头部的内容(从网上摘抄的)直接复制粘贴进去。
# coding: utf-8
import re
import sys
import time
from logzero import logger
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
driver = webdriver.Chrome(r"chromedriver")
driver.implicitly_wait(30) # 设置默认的等待时间
#def click(xpath):
# logger.info("Click %s", xpath)
# e = WebDriverWait(driver, 10).until(
# EC.presence_of_element_located((By.XPATH, xpath)))
# e.click()
# time.sleep(.1)
下面来用代码演示下打开百度,搜索Hello World
点击确定,然后保存搜索内容成图片
driver.get("https://www.baidu.com")
目前只有一行代码,执行完之后就会自动打开浏览器,访问百度首页。
如何用代码点击搜索框呢?
第一步先需要确定搜索框的定位符。
打开 Chrome,F12
开启开发者选项。选择这个 Inspect 元素的功能,如下图(或者快捷键 Ctrl+Shift+C)
鼠标移动上传,搜索框会被高亮。点击左键。
调试窗口中的相应的 HTML 也会被选中。这时右键选择 Copy Xpath
剩下的就是调用 selenium 的接口了。
driver.find_element_by_xpath('//*[@id="kw"]').send_keys("Hello World")
driver.find_element_by_xpath('//*[@id="su"]').click()
time.sleep(1)
driver.save_screenshot('screenshot.png')
driver.close() # 关闭浏览器
最后截图出来的图片
2021 年 5 月补充
https://www.selenium.dev/selenium-ide/
目前用了下感觉 seleniumIDE 也挺好用的。界面长的跟 katalon 很像,可能是反向抄的
seleniumIDE 的录制模式是真的好用啊
另外在 Chrome 上发现了一个还不错的工具 Katalon Recorder,有录制和自动生成 Python 代码的功能。感觉还不错的样子。