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

81 lines
2.9 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 json
import os
import time
# 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)
# 加载存有测试数据的json文件
def load_json_file(file_path):
# 获取当前所在文件的目录
dir_path = os.path.dirname(os.path.abspath(__file__))
# 将目录路径和文件名进行拼接,获取最终的文件路径
file_path = dir_path+"\\"+file_path
# 加载文件
with open(file_path,encoding='utf-8') as f:
data = json.load(f)
return data
def test_bug553_LinShan():
try:
# 打开对应地址的网页
driver.get(HOME_PAGE)
# 浏览器最大窗口化
driver.maximize_window()
# 判断网页源代码中是否有English Pal -文字
assert 'English Pal -' in driver.page_source
# 获取json格式的测试数据
words = load_json_file("test_file.json")
# 遍历测试的数据
for word in words:
# 将测试的数据输入到主页的textarea里
driver.find_element_by_xpath("//textarea[@name='content']").send_keys(Keys.CONTROL, "a")
driver.find_element_by_xpath("//textarea[@name='content']").send_keys(word['key'])
time.sleep(2)
# 点击按钮获取单词
driver.find_element_by_xpath("//input[@value='get文章中的词频']").click()
time.sleep(2)
# 获取筛选后的单词
get_words = driver.find_elements_by_xpath("//p/a")
# 遍历获取到的单词,并判断单词与预期的相同
for w in get_words:
# 判断单词是否在预期结果中
assert w.text in word['value']
# 返回上一页网页
driver.find_element_by_xpath("//input[@value='确定并返回']").click()
time.sleep(2)
except Exception as e:
# 输出异常信息
logging.error(e)
finally:
# 关闭浏览器
driver.quit()