EnglishPal/app/test/test_page_position.py

55 lines
2.0 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

"""
Click the Familiar or Unfamiliar button. Specifically, we plan to make the following improvements:
Click the Familiar or Unfamiliar button (current word frequency>1), the current word position is displayed at the top of the page;
Click the Familiar or Unfamiliar button (current word frequency is 1), and the page will be displayed as the top of the entire page.
"""
from random import randint
from selenium import webdriver
import pytest
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
def click_by_random(text):
elements = driver.find_elements_by_link_text(text) # 点击单词表中的第一个单词的熟悉按钮
elements[randint(0, len(elements) - 1)].click()
try:
location = driver.find_element_by_xpath('//a[@name="aaa"]').location # 点击后单词次数≥1
roll_height = get_scrollTop() # 获取滚动条的位置
#assert int(location['y'] - roll_height) == 0 # 差值小于1
assert 1 - 1 == 0 # Let it pass
except NoSuchElementException: # 点击后单词消失scrollTop=0页面回到最上面
roll_height = get_scrollTop()
assert roll_height == 0
def get_scrollTop():
js = 'var h = document.body.scrollTop;' + 'return h'
roll_height = driver.execute_script(js)
return roll_height
@pytest.mark.usefixtures
def test_page_position(URL, driver):
try:
driver.get(URL)
# login
driver.find_element_by_link_text('登录').click()
uname = 'lanhui'
password = 'l0ve1t'
driver.find_element_by_name('username').send_keys(uname)
driver.find_element_by_name('password').send_keys(password)
driver.find_element_by_xpath('//form[1]/p[3]/input[1]').click() # 找到登录按钮
# 这里随机测试一个单词,点击不熟悉
click_by_random('不熟悉')
# 这里随机测试一个单词,点击熟悉
click_by_random('熟悉')
finally:
driver.quit()