UI自动化-部署云端selenium-server服务

selenium git地址
https://github.com/SeleniumHQ/seleniumhq.github.io
nodeConfig.json配置地址
https://github.com/SeleniumHQ/selenium/wiki/Grid2#configuring-the-nodes-by-json(作参考)

安装wget包
yum -y install wget
在这里插入图片描述
xvfb安装:
wget http://vault.centos.org/6.5/os/x86_64/Packages/xorg-x11-server-Xvfb-1.13.0-23.el6.centos.x86_64.rpm
在这里插入图片描述

安装
yum localinstall xorg-x11-server-Xvfb-1.13.0-23.el6.centos.x86_64.rpm
在这里插入图片描述
验证是否安装成功
sudo Xvfb :10 -screen 0 1024x768x24 -ac -nolisten tcp -extensionRANDR &
在这里插入图片描述

phantomjs安装
①下载地址:链接:https://pan.baidu.com/s/1htohHis 密码:fuyy
②上传到linux下指定目录:  cd /home/web/selenium_box
③再使用tar进行解压到/usr/local/目录下边  tar xvf phantomjs-2.1.1-linux-x86_64.tar -C /usr/local/
在这里插入图片描述
(如果报以下错误, 就执行【yum -y install bzip2】),再执行③成功
在这里插入图片描述
在这里插入图片描述
④安装依赖软件  yum -y install wget fontconfig
在这里插入图片描述
⑤ 重命名(方便以后使用phantomjs命令)  mv /usr/local/phantomjs-2.1.1-linux-x86_64/ /usr/local/phantomjs
在这里插入图片描述
⑥建立软连接(在/usr/bin/目录下生产一个phantomjs的软连接,/usr/bin/)  ln -s /usr/local/phantomjs/bin/phantomjs /usr/bin/
⑦验证chrom是否安装成功:
将test.js上传到【/usr/local/src】目录下,
cd /usr/local/src
phantomjs test.js
Hello world! 出现左侧字样,表示成功
在这里插入图片描述

安装selenium时缺少setuptools和pip
setuptools安装
①下载setuptools包 wget https://pypi.python.org/packages/source/s/setuptools/
在这里插入图片描述
setuptools-0.6c11.tar.gz
解压setuptools包 tar -xvf setuptools-0.6c11.tar.gz
在这里插入图片描述
cd setuptools-0.6c11
编译setuptools python setup.py build
在这里插入图片描述
开始执行setuptools安装 python setup.py install
在这里插入图片描述
如果报以下错误
换了个服务器后安装时报错,解决办法: 
在这里插入图片描述
安装时后缀 --user ok     
在这里插入图片描述
pip包
wget “https://pypi.python.org/packages/source/p/pip/pip-1.5.4.tar.gz#md5=834b2904f92d46aaa333267fb1c922bb” --no-check-certificate
在这里插入图片描述
tar -axf pip-1.5.4.tar.gz
在这里插入图片描述
cd pip-1.5.4/
python setup.py install
在这里插入图片描述
安装完后,使用 pip -V
在这里插入图片描述
如果报错报错,如下:bash: pip: command not found…
做一个软连接即可:首先查下安装路径:
find / -name pip
ln -sv /usr/local/python/bin/pip /usr/bin/pip
路径不要根据你自己的进行改变。

安装python的selenium模块:

①下载地址:https://pypi.org/project/selenium/#files
在这里插入图片描述
在这里插入图片描述
解压tar zxvf selenium* 进入到该目录 — cd selenium.3.**** 执行安装 — python setup.py 并最后验证import成功
在这里插入图片描述
在setup.py文件夹下执行安装 python setup.py install
在这里插入图片描述
如果一直安装不成功,则有可能是python的版本低导致安装失败,就升下级,然后重新安装 selenium,以下情况是安装失败的一种
在这里插入图片描述
python --version查看版本,
在这里插入图片描述
Selenium server 下载安装
下载地址1:https://www.selenium.dev/downloads/【官网】
下载地址2:http://selenium-release.storage.googleapis.com/index.html
在这里插入图片描述
在这里插入图片描述

最终安装的selenium-server-standalone-3.141.59.jar, elenium-server-standalone-3.141.0.jar启动时一直报错,
[WebDriverServlet.] - Initialising WebDriverServlet
Exception in thread “main” java.lang.IllegalStateException: Insufficient configured threads: required=3 < max=3 for QueuedThreadPool[qtp1568059495]@5d76b067{STARTED,3<=3<=3,i=3,q=0}[ReservedThreadExecutor@9597028{s=0/1,p=0}]
at org.seleniumhq.jetty9.util.thread.ThreadPoolBudget.check(ThreadPoolBudget.java:155)
在这里插入图片描述

将selenium-server****.jar包上传到服务器
cd至selenium server jar包所在的路径下,用命令启动主节点hub服务:
启动的默认端口是4444,如果要改变这个端口号,则命令后加上-port XXXX,如端口号改为6666,命令为
java -jar selenium-server-standalone-3.141.59.jar -port 4444 -role hub
在这里插入图片描述

完成上一步操作后,在本地浏览器中打开 http://192.168..:4444/wd/hub 查看是否可以打开,可以连接如下:如果不是下面这样,则查看防火墙状态,执行【systemctl stop firewalld.service】关闭防火墙再打开该地址即可
在这里插入图片描述
http://192.168.31.33:4444/grid/console 查看子节点状态

谷歌浏览器安装
到此为止,已经把selenium的服务端安装好了,接下来安装谷歌浏览器

配置yum源
在目录 /etc/yum.repos.d/ 下新建文件 google-chrome.repo
vim /ect/yum.repos.d/google-chrome.repo 回车
输入【i】
拷贝粘贴一下内容
[google-chrome]
name=google-chrome
baseurl=http://dl.google.com/linux/chrome/rpm/stable/$basearch
enabled=1
gpgcheck=1
gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub

1.按 ESC 退出编辑模式(回到命令模式)
2.输入 :wq! 保存并退出

yum -y install google-chrome-stable --nogpgcheck
在这里插入图片描述
在这里插入图片描述
找到chrome路径,并做个软连接,方便使用
在这里插入图片描述
启动子节点
java -Dwebdriver.chrome.driver="/usr/local/bin/chromedrive -jar selenium-server-standalone-3.141.59.jar -role node -hub http://192.168.31.33:4444/grid/register/ -port 5555 -maxSession 5 -browser browserName=chrome,seleniumProtocol=WebDriver,platformName=LINUX,version=83.0.4103.61

http://192.168.31.33:4444/grid/console# 可以访问,可以查看下面有哪些子节点
在这里插入图片描述
在这里插入图片描述
代码里面连接远程驱动的方式
在这里插入图片描述

import java.net.URL;

import org.junit.Test;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;

/**   
*  2020 
* @Description: TODO
* @author: Janie.li
*/
public class TestRemote {

	@Test
	public void testRemote()
	{
		WebDriver driver= null;
		try {
			System.out.println("==============创建远程连接================");
			ChromeOptions options = new ChromeOptions();
			//如果什么参数也不配置,则会报【CapabilityNotPresentOnTheGridException: cannot find : Capabilities {browserName: chrome, version: }】
			// 如果不加下面这些参数,则会报【selenium报错unknown error: DevToolsActivePort file doesn't exist】
			options.setHeadless(true);			
			options.addArguments("--headless","--no-sandbox","--disable-dev-shm-usage","blink-settings=imagesEnabled=false","--disable-gpu");
			options.setCapability(CapabilityType.BROWSER_NAME, "chrome");
			///如果指定版本,则会报【Driver info: driver.version: unknown】,版本必须跟服务器上安装的版本保持一致
			options.setCapability(CapabilityType.VERSION, "83.0.4103.61);/
			options.setCapability(CapabilityType.PLATFORM_NAME, "LINUX");
	        driver=new RemoteWebDriver(new URL("http://192.168.31.33:4444/wd/hub"), options);
	        driver.manage().window().maximize();
	        driver.get("http://www.baidu.com");
	        System.out.println("打开百度");
	        Thread.sleep(2000);
		} catch (Exception e) {
			e.printStackTrace();
		}
		finally {
		//一定要释放连接,关闭资源,否则会一直占着连接,超过配置的数量,就再也连接不上了,需要去服务器手动关闭连接
			System.out.println("==============关闭远程连接================");
			driver.close();
			driver.quit();
		}
	}
}

vnc的安装和配置:
https://www.cnblogs.com/heruiguo/p/7999101.html

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值