forked from mrlan/EnglishPal
				
			test_bug553
							parent
							
								
									b8f2919959
								
							
						
					
					
						commit
						b7fe68c54d
					
				| 
						 | 
					@ -0,0 +1,81 @@
 | 
				
			||||||
 | 
					# -*- 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()
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,30 @@
 | 
				
			||||||
 | 
					[
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        "key":"‘test1’",
 | 
				
			||||||
 | 
					        "value": ["test1"]
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        "key":"'test2'",
 | 
				
			||||||
 | 
					        "value": ["test2"]
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        "key":"“test3”",
 | 
				
			||||||
 | 
					        "value": ["test3"]
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        "key":"it's",
 | 
				
			||||||
 | 
					        "value": ["it's"]
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        "key":"hello,I'm linshan",
 | 
				
			||||||
 | 
					        "value": ["hello","i'm","linshan"]
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        "key":"Happy New Year!?",
 | 
				
			||||||
 | 
					        "value": ["happy","new","year"]
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        "key":"My favorite book is 《Harry Potter》。",
 | 
				
			||||||
 | 
					        "value":["potter","harry","my","favorite","book","is"]
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
| 
						 | 
					@ -106,7 +106,7 @@ if __name__ == '__main__':
 | 
				
			||||||
        print('%s\t%d\t%s' % (x[0], x[1], youdao_link(x[0])))#函数导出
 | 
					        print('%s\t%d\t%s' % (x[0], x[1], youdao_link(x[0])))#函数导出
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # 把频率的结果放result.html中
 | 
					    # 把频率的结果放result.html中
 | 
				
			||||||
    make_html_page(sort_in_descending_order(L), 'result.html') 
 | 
					    make_html_page(sort_in_descending_order(L), 'result.html')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    print('\nHistory:\n')
 | 
					    print('\nHistory:\n')
 | 
				
			||||||
    if os.path.exists('frequency.p'):
 | 
					    if os.path.exists('frequency.p'):
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue