summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/test/test_add_word_and_essay_does_not_change.py67
1 files changed, 67 insertions, 0 deletions
diff --git a/app/test/test_add_word_and_essay_does_not_change.py b/app/test/test_add_word_and_essay_does_not_change.py
new file mode 100644
index 0000000..bb7d13b
--- /dev/null
+++ b/app/test/test_add_word_and_essay_does_not_change.py
@@ -0,0 +1,67 @@
+# -*- 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
+
+import random, time
+import string
+
+driver = webdriver.Remote('http://localhost:4444/wd/hub', DesiredCapabilities.CHROME)
+
+HOME_PAGE = 'http://121.4.94.30:91/'
+
+
+def has_punctuation(s):
+ return [c for c in s if c in string.punctuation] != []
+
+def test_add_word_and_essay_does_not_change():
+ driver.get(HOME_PAGE)
+ assert 'English Pal -' in driver.page_source
+
+ # login
+ elem = driver.find_element_by_link_text('登录')
+ elem.click()
+
+ uname = 'lanhui'
+ password = 'l0ve1t'
+ elem = driver.find_element_by_name('username')
+ elem.send_keys(uname)
+
+ elem = driver.find_element_by_name('password')
+ elem.send_keys(password)
+
+ elem = driver.find_element_by_xpath('//form[1]/p[3]/input[1]') # 找到登录按钮
+ elem.click()
+
+ assert 'EnglishPal Study Room for ' + uname in driver.title
+
+ # get essay content
+ driver.save_screenshot('./app/test/test_add_word_and_essay_does_not_change_pic0.png')
+ elem = driver.find_element_by_id('text-content')
+ essay_content = elem.text
+
+ elem = driver.find_element_by_id('selected-words')
+ word = random.choice(essay_content.split())
+ while 'font>' in word or 'br>' in word or 'p>' in word or len(word) < 5 or has_punctuation(word):
+ word = random.choice(essay_content.split())
+ elem.send_keys(word)
+ elem = driver.find_element_by_xpath('//form[2]//input[1]') # 找到get所有词频按钮
+ elem.click()
+
+ elems = driver.find_elements_by_xpath("//input[@type='checkbox']")
+ for elem in elems:
+ if elem.get_attribute('name') == 'marked':
+ elem.click()
+
+ elem = driver.find_element_by_xpath('//form[1]/input[1]') # 找到加入我的生词簿按钮
+ elem.click()
+
+ # get essay contant again
+ driver.save_screenshot('./app/test/test_add_word_and_essay_does_not_change_pic0.png')
+ elem = driver.find_element_by_id('text-content')
+ current_essay_content = elem.text
+
+ assert current_essay_content == essay_content
+
+ driver.quit()