我们在做爬虫,或者自动化测试的时候,经常需要用到selenium,这个框架大家也都不陌生,相信用过的朋友, 大部分肯定都知道在Windows下不管做UI自动化测试还是做爬虫元素提取,都是非常方便的,比如看下面的代码,是一个最基本的在Windows下操控Chrome浏览器打开网页的代码
环境配置:
Linux:
1、jdk 1.8+ 2、selenium-server-standalone-3.8.1.jar 3、selenium 3版本
Windows:
1、jdk 1.8+
2、selenium-server-standalone-3.8.1.jar 3、selenium 3版本
注意事项: 1、 selenium-server-standalone 版本一定要和selenium版本匹配,必须都是3版本或者都是2版本,不能一个2一个3, 2、chromedriver和jar包放同一目录!!!(这地方踩过坑,格外注意)
以上基本环境配置好后,我们开始执行命令启动服务
1、首先启动Linux服务器上的selenium grid服务,需要切换到selenium-server-standalone-3.81.jar所在目录
java -jar selenium-server-standalone-3.8.1.jar -role hub -port 4455 这里Hub端开启了4455端口,用来接收node连接信息,启动成功提示:Registered a node http://10.21.104.88:4455
2、切换到Windows里面的selenium-server-standalone-v3.0.1.jar所在目录
java -jar selenium-server-standalone-3.8.1.jar -role node -port 4455 -hub http://10.21.104.88:4455/grid/register(ip为Linux服务器ip) 启动成功提示:The node is registered to the hub and ready to use
from selenium import webdriverdriver = webdriver.Chrome(executable_path='C:\\chrome\\chromedriver246.exe')driver.get("http://www.baidu.com")import webdriver
driver = webdriver.Chrome(executable_path='C:\\chrome\\chromedriver246.exe')
driver.get("http://www.baidu.com")
需求一:
Linux下跑自动化脚本,想在Windows看带界面的执行过程,该怎么做?
需求二:
通过这两个需求,引申出来今天给大家分享的技术知识
这样的控制流程通过什么技术实现?
答案:selenium grid
环境配置:
Linux:
1、jdk 1.8+ 2、selenium-server-standalone-3.8.1.jar 3、selenium 3版本
Windows:
1、jdk 1.8+
2、selenium-server-standalone-3.8.1.jar 3、selenium 3版本
注意事项: 1、 selenium-server-standalone 版本一定要和selenium版本匹配,必须都是3版本或者都是2版本,不能一个2一个3, 2、chromedriver和jar包放同一目录!!!(这地方踩过坑,格外注意)
以上基本环境配置好后,我们开始执行命令启动服务
1、首先启动Linux服务器上的selenium grid服务,需要切换到selenium-server-standalone-3.81.jar所在目录
java -jar selenium-server-standalone-3.8.1.jar -role hub -port 4455 这里Hub端开启了4455端口,用来接收node连接信息,启动成功提示:Registered a node http://10.21.104.88:4455
2、切换到Windows里面的selenium-server-standalone-v3.0.1.jar所在目录
java -jar selenium-server-standalone-3.8.1.jar -role node -port 4455 -hub http://10.21.104.88:4455/grid/register(ip为Linux服务器ip) 启动成功提示:The node is registered to the hub and ready to use
连接成功的话浏览器打开:http://10.21.104.88:4455/grid/console
可以查看连接hub的node信息,有浏览器版本号,表明连接成功,我这里有两台电脑都连了hub
好了,当我们把繁琐的环境配置好后,并且hub和node命令也都开启并成功建立了连接,我们就可以编写脚本代码了,下方是脚本代码,在本地我们之前用webdriver.Chrome即可,现在在服务器上,我们通过webdriver.Remote来创建driver对象,执行这个python文件,即可打开Windows的Chrome浏览器from selenium import webdriver#driver = webdriver.Chrome(executable_path='C:\chrome\chromedriver246.exe')desired_capabilities={'browserName': 'chrome', 'version': '', 'platform': 'ANY', 'javascriptEnabled': True, 'webdriver.chrome.driver': 'C:\\chrome\\chromedriver246.exe' }# 这里的ip是本机的ipv4地址,django项目中的话,可以在META信息中获取Windows的Ip地址作为参数传到下方driver = webdriver.Remote('http://10.20.57.160:4455/wd/hub',desired_capabilities=desired_capabilities)driver.get("http://www.baidu.com")import webdriver
#driver = webdriver.Chrome(executable_path='C:\chrome\chromedriver246.exe')
desired_capabilities={'browserName': 'chrome',
'version': '',
'platform': 'ANY',
'javascriptEnabled': True,
'webdriver.chrome.driver': 'C:\\chrome\\chromedriver246.exe'
}
# 这里的ip是本机的ipv4地址,django项目中的话,可以在META信息中获取Windows的Ip地址作为参数传到下方
driver = webdriver.Remote('http://10.20.57.160:4455/wd/hub',desired_capabilities=desired_capabilities)
driver.get("http://www.baidu.com")
总结:
python爬虫人工智能大数据公众号