# -*- 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()