2024-04-08 16:37:15 +08:00
# -*- 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
2024-04-16 08:46:16 +08:00
import pytest
2024-04-08 16:37:15 +08:00
# 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 )
2024-04-16 08:46:16 +08:00
@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 ) :
2024-04-08 16:37:15 +08:00
try :
# 打开对应地址的网页
driver . get ( HOME_PAGE )
# 浏览器最大窗口化
driver . maximize_window ( )
# 判断网页源代码中是否有English Pal -文字
assert ' English Pal - ' in driver . page_source
2024-04-16 08:46:16 +08:00
# 将测试的数据输入到主页的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 )
2024-04-08 16:37:15 +08:00
2024-04-16 08:46:16 +08:00
# 点击按钮获取单词
driver . find_element_by_xpath ( " //input[@value= ' get文章中的词频 ' ] " ) . click ( )
time . sleep ( 2 )
2024-04-08 16:37:15 +08:00
2024-04-16 08:46:16 +08:00
# 获取筛选后的单词
words = driver . find_elements_by_xpath ( " //p/a " )
2024-04-08 16:37:15 +08:00
2024-04-16 08:46:16 +08:00
# 遍历获取到的单词,并判断单词与预期的相同
for word in words :
# 判断单词是否在预期结果中
assert word . text in expected
2024-04-08 16:37:15 +08:00
2024-04-16 08:46:16 +08:00
# 返回上一页网页
driver . find_element_by_xpath ( " //input[@value= ' 确定并返回 ' ] " ) . click ( )
time . sleep ( 2 )
2024-04-08 16:37:15 +08:00
except Exception as e :
# 输出异常信息
logging . error ( e )
# 关闭浏览器
2024-04-22 12:46:31 +08:00
driver . quit ( )
2024-04-16 08:46:16 +08:00
finally :
2024-04-08 16:37:15 +08:00
driver . quit ( )