1.1在docker中搜索基于python3.6的centos镜像:docker search python
1.2.下载镜像:docker pull centos/python-36-centos7
1.3.基于该镜像创建容器robottest:docker run -di --name=robottest centos/python-36-centos7 /bin/bash
1.4.已root身份进入容器验证python3.6已安装,如果是普通用户身份进入容器,后面配置chrome会提示无权限
2.1 添加repo
源:vi /etc/yum.repos.d/google.repo
在空白文件中添加以下内容:
[google]
name=Google-x86_64
baseurl=http://dl.google.com/linux/rpm/stable/x86_64
enabled=1
gpgcheck=0
gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub
2.2 yum
安装chrome浏览器
$ yum update
$ yum install google-chrome-stable
查看chrome
的版本:google-chrome --version
2.3下载chromedriver
chromedriver下载列表见:https://npm.taobao.org/mirrors/chromedriver/
找到与chrome对应的chromedriver版本,右键获取链接,安装chromedriver
wget https://npm.taobao.org/mirrors/chromedriver/91.0.4472.101/chromedriver_linux64.zip
#解压:
unzip chromedriver_linux64.zip
#修改存放地方:
mv chromedriver /usr/local/bin/
#修改权限:
chmod u+x,o+x /usr/local/bin/chromedriver
2.4检查chromedriver是否安装成功:chromedriver -v
添加至环境变量$PATH:vi ~/.bash_profile
输入以下内容:
PATH=$PATH:/usr/local/bin
export PATH=/usr/local/bin:$PATH
selenium
selenium
可以在docker的虚拟环境中用pip
安装:pip install selenium
编辑test.py文件,代码如下:
(注意,这里的--no-sandbox
和--headless
是必须的,而且必须按照--no-sandbox
在最前面的顺序,否则会报一些非常摸不着头脑的错误)
#test.py
from selenium.webdriver import Chrome
from selenium.webdriver.chrome.options import Options
DRIVER_PATH = '/usr/local/bin/chromedriver'
if __name__ == "__main__":
# 设置浏览器
options = Options()
options.add_argument('--no-sandbox')
options.add_argument('--headless') # 无头参数
options.add_argument('--disable-gpu')
# 启动浏览器
driver = Chrome(executable_path=DRIVER_PATH, options=options)
# 访问目标URL
driver.get('https://www.baidu.com/')
print(driver.page_source)
driver.close()
driver.quit()
执行test.py成功,可打印出百度页面的html
pip install robotframework==3.0
安装完成后输入pybot验证是否安装成功
如安装的版本较高时,输入pybot会提示找不到该指令,重新安装低版本即可
pip install Pypubsub==3.3.0
pip install robotframework-seleniumlibrary==4.1.0
将ui自动化代码cp到robottest容器中
执行robot测试用例
ps:如果页面包含中文时,中文会显示为一个个的小方格,可以从robot的截图中看粗来,如下图
解决方法:安装中文字体包,yum -y groupinstall Fonts
安装完成后页面就可以正常展示中文了