59 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
		
		
			
		
	
	
			59 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
| 
								 | 
							
								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 selenium.webdriver.common.keys import Keys
							 | 
						|||
| 
								 | 
							
								import logging
							 | 
						|||
| 
								 | 
							
								import time
							 | 
						|||
| 
								 | 
							
								import pytest
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								@pytest.mark.parametrize("test_input,expected",
							 | 
						|||
| 
								 | 
							
								                         [("‘test1’", "test1"),
							 | 
						|||
| 
								 | 
							
								                          ("'test2'", "test2"),
							 | 
						|||
| 
								 | 
							
								                          ("“test3”", "test3"),
							 | 
						|||
| 
								 | 
							
								                          ("it's", "it's"),
							 | 
						|||
| 
								 | 
							
								                          ("hello,I'm linshan", ["hello","i'm","linshan"]),
							 | 
						|||
| 
								 | 
							
								                          ("Happy New Year!?", ["happy","new","year"]),
							 | 
						|||
| 
								 | 
							
								                          ("My favorite book is 《Harry Potter》。", ["potter","harry","my","favorite","book","is"])])
							 | 
						|||
| 
								 | 
							
								def test_bug553_LinShan(test_input,expected, driver, URL):
							 | 
						|||
| 
								 | 
							
								    try:
							 | 
						|||
| 
								 | 
							
								        # 打开对应地址的网页
							 | 
						|||
| 
								 | 
							
								        driver.get(URL)
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        # 浏览器最大窗口化
							 | 
						|||
| 
								 | 
							
								        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(1)
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        # 点击按钮获取单词
							 | 
						|||
| 
								 | 
							
								        driver.find_element_by_xpath("//input[@value='get文章中的词频']").click()
							 | 
						|||
| 
								 | 
							
								        time.sleep(1)
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        # 获取筛选后的单词
							 | 
						|||
| 
								 | 
							
								        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(0.1)
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    except Exception as e:
							 | 
						|||
| 
								 | 
							
								        # 输出异常信息
							 | 
						|||
| 
								 | 
							
								        logging.error(e)
							 | 
						|||
| 
								 | 
							
								        # 关闭浏览器
							 | 
						|||
| 
								 | 
							
								        driver.quit()
							 | 
						|||
| 
								 | 
							
								    finally:
							 | 
						|||
| 
								 | 
							
								        driver.quit()
							 |