Web UI自动化测试问题
Web UI自动化测试问题
Selenium 相关
selenium如何连接已经打开的浏览器
selenium虽然没有提供连接它自己创建的浏览器实例,但是却可以连接通过–remote-debugging-port=12306这个参数启动的chrome浏览器。什么意思呢?我们先使用命令行启动一个chrome,命令如下
chrome.exe --remote-debugging-port=9222 --user-data-dir="C:\selenum\AutomationProfile"
Python使用刚才启动的浏览器,代码如下:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
options.add_experimental_option("debuggerAddress", "127.0.0.1:12306")
driver = webdriver.Chrome(options=options)
selenium 实现不定位元素,输入enter键
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
ActionChains(driver).send_keys(Keys.ENTER).perform()
selenium 上传文件
- input类型:
driver.find_element_by_name('txt_userfile').send_keys(r"E:\test.jpg")
selenium 获取chrome控制台信息
_service = Service(executable_path=RESOURCES_PATH + "/chromedriver")
caps = webdriver.DesiredCapabilities.CHROME.copy() # 增加性能日志并打开loggingPrefs
caps['goog:loggingPrefs'] = {'browser': 'ALL'}
driver = webdriver.Chrome(options=_options, service=_service, desired_capabilities=caps)
console_log = driver.get_log("browser")
for log in console_log:
print(log)
下拉框元素定位
-
普通的select控件,selenium自带方法可以定位
-
自己定义下拉框,就是普通的div控件,当我们想寻找下拉框的某个选项时,展开下拉框后,想通过浏览器的定位,发现只要鼠标点击其他地方时,下拉框就收起了,于是就陷入了迷惑中了。该如何解决这类问题呢?答案:
- 展开下拉框
- 右键下拉框的选项
- 点击检查
此时,浏览器的下方就获取到当前的元素了属性了,然后就可以愉快的拿到元素的属性进行定位了~~
Docker启动web自动化
- 编写Dockerfile:
FROM python:3.7.0
USER root
WORKDIR /code
COPY . /code
RUN pip3 install --upgrade pip && pip3 install -r /code/requirements.txt -i https://pypi.douban.com/simple
CMD cd /code/run && python3 officer_run.py
- 启动chrome:
docekr run -p 4444:4444 selenium/standalone-chrome:latest
- 进入项目目录构建容器:
cd 项目目录
docker build -t name .
- 启动容器:
docker run name