用于测试web ui的selenium包装器

Promium的Python项目详细描述


https://gitlab.uaprom/uaprom/promium/badges/master/pipeline.svghttps://gitlab.uaprom/uaprom/promium/badges/master/coverage.svghttps://img.shields.io/badge/python-2.7%2C%203.5%2C%203.6-blue.svghttps://badge.fury.io/py/Promium.svg

来自实现的ui测试的简单selenium包装器

观看documentation

快速启动

安装

pip install promium

pip install selenium

驱动器

# get actual chrome driver version
CHROME_DRIVER_VERSION=$(wget http://chromedriver.storage.googleapis.com/LATEST_RELEASE -q -O -)# download chrome driver
wget --no-verbose -O /tmp/chromedriver_linux64.zip https://chromedriver.storage.googleapis.com/$CHROME_DRIVER_VERSION/chromedriver_linux64.zip

# unpack
unzip /tmp/chromedriver_linux64.zip -d /opt/selenium

# add link from chrome driver
ln -fs /opt/selenium/chromedriver /usr/bin/chromedriver

示例

页面对象

fromselenium.webdriver.common.byimportByfrompromiumimportPage,Block,Element,InputField,LinkclassResultBlock(Block):title=Link(By.CSS_SELECTOR,'h3')link=Element(By.CSS_SELECTOR,'.f')description=Element(By.CSS_SELECTOR,'.st')tags=Element.as_list(By.CSS_SELECTOR,'.osl .fl')classGoogleResultPage(Page):results_blocks=ResultBlock.as_list(By.CSS_SELECTOR,'#rso .srg div.g')classGoogleMainPage(Page):url='https://google.com'logo=Element(By.CSS_SELECTOR,'#hplogo')search_input=InputField(By.CSS_SELECTOR,'[name="q"]')defsearch(self,text):self.search_input.send_keys(text)self.search_input.submit()returnGoogleResultPage(self.driver)

来自google页面的简单测试
frompromium.test_caseimportWebDriverTestCasefromtests.pages.google_pageimportGoogleMainPageclassTestMainGooglePage(WebDriverTestCase):deftest_search(self):main_page=GoogleMainPage(self.driver)main_page.open()self.soft_assert_element_is_displayed(main_page.logo)result_page=main_page.search('Selenium')result_block=result_page.results_blocks.first_itemself.soft_assert_in('Selenium',result_block.title.text)

运行测试
# all tests
pytest tests/

# all tests in suite
pytest tests/test_google.py

# only one test
pytest tests/test_google.py -k test_search

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
swing Java按钮/网格布局   java列出Google日历中的所有事件   java无效:单击API publisher test按钮后连接到后端时出错   带有内部赋值的java While循环导致checkstyle错误   java为什么trimToSize/ensureCapacity方法提供“公共”级访问?   文件输出流的java问题   ListIterator和并发修改异常的java问题   java如何使用两个URL映射   无法识别使用“./../”构造的字符串java相对路径,为什么?   首次写入remotelyclosedsocket不会触发异常,对吗?JAVA   java OneDrive REST API为文件上载提供了400个无效谓词   Java泛型、集合接口和对象类的问题   OpenSSL Java安全提供程序   jmeter java运行jmx禁用操作