""" 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 from selenium.common.exceptions import NoSuchElementException from selenium.webdriver.common.desired_capabilities import DesiredCapabilities driver = webdriver.Remote('http://localhost:4444/wd/hub', DesiredCapabilities.FIREFOX) driver.implicitly_wait(10) HOME_PAGE = 'http://121.4.94.30:91/' 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 def test_page_position(): try: driver.get(HOME_PAGE) # 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('不熟悉') click_by_random('不熟悉') # 这里随机测试三个单词,点击熟悉 click_by_random('熟悉') click_by_random('熟悉') click_by_random('熟悉') finally: driver.quit()