应用场景
使用浏览器自动控制登录网站,并完成PayPal的付款
准备
准备使用python语言完成开发,需要做如下准备工作:
- 安装python3.8
- 安装pycharm(python IDE,可选安装)
- 使用pip安装selenium 在windows powershell下键入 pip install
- 根据浏览器类型,安装对应的webdriver
设计要点
1. 防止网站检测
很多网站对selenium有检测行为,由selenium直接使用WebDriver来操纵浏览器会使其被检测出,对于chrome浏览器,使用调试端口以本地套接口来操纵,可以避免被检测出使用了自动化工具,范例如下:
def get_driver(port):
# 测试调试浏览器是否已打开
sk = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sk.settimeout(0.5)
try:
sk.connect(('127.0.0.1', port))
except:
# 通过cmd方式打开一个Chrome浏览器
open_str = r'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe --remote-debugging-port=%d \
--user-data-dir="d:\selenium\AutomationProfile"' % port
subprocess.Popen(open_str)
my_log('当前使用的是谷歌桥接浏览器')
sk.close()
# 桥接到已经打开的Chrome浏览器
try:
options = webdriver.ChromeOptions()
options.add_experimental_option("debuggerAddress",