1
0
Fork 0
EnglishPal/app/test/test_bug553_LinShan.py

66 lines
2.6 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# -*- coding: utf-8 -*-
# Run the docker image using the following command:
# docker run -d -p 4444:4444 selenium/standalone-chrome
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium.webdriver.support import expected_conditions as EC
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.by import By
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.keys import Keys
import logging
import time
import pytest
# driver = webdriver.Remote('http://localhost:4444/wd/hub', DesiredCapabilities.FIREFOX)
# HOME_PAGE = 'http://121.4.94.30:91/'
# 我使用的是Chrome浏览器所以我又通过安装webdriver-manager插件来配置浏览器的驱动
# 我通过 'pip install webdriver-manager==4.00' 命令安装webdriver-manager并且设置其版本为4.00
driver = webdriver.Chrome(ChromeDriverManager().install())
HOME_PAGE = 'http://127.0.0.1:5000/'
driver.implicitly_wait(10)
@pytest.mark.parametrize("test_input",("test1","'test2'","“test3”","it's","hello,I'm linshan","Happy New Year","My favorite book is 《Harry Potter》。"))
@pytest.mark.parametrize("expected",(["test1"],["test2"],["test3"],["it's"],["hello","i'm","linshan"],["happy","new","year"],["potter","harry","my","favorite","book","is"]))
def test_bug553_LinShan(test_input,expected):
try:
# 打开对应地址的网页
driver.get(HOME_PAGE)
# 浏览器最大窗口化
driver.maximize_window()
# 判断网页源代码中是否有English Pal -文字
assert 'English Pal -' in driver.page_source
# 将测试的数据输入到主页的textarea里
driver.find_element_by_xpath("//textarea[@name='content']").send_keys(Keys.CONTROL, "a")
driver.find_element_by_xpath("//textarea[@name='content']").send_keys(test_input)
time.sleep(2)
# 点击按钮获取单词
driver.find_element_by_xpath("//input[@value='get文章中的词频']").click()
time.sleep(2)
# 获取筛选后的单词
words = driver.find_elements_by_xpath("//p/a")
# 遍历获取到的单词,并判断单词与预期的相同
for word in words:
# 判断单词是否在预期结果中
assert word.text in expected
# 返回上一页网页
driver.find_element_by_xpath("//input[@value='确定并返回']").click()
time.sleep(2)
except Exception as e:
# 输出异常信息
logging.error(e)
# 关闭浏览器
finally:
driver.quit()