import time
import pytest
from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.by import By
from selenium.webdriver.common.alert import Alert
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait


def test_bug551():
    driver = webdriver.Edge()
    driver.maximize_window()
    driver.get("http://127.0.0.1:5000/")

    driver.find_element(By.CSS_SELECTOR, 'a[href="/login"]').click()
    driver.find_element(By.ID, 'username').send_keys('dzy')
    driver.find_element(By.ID, 'password').send_keys('123456')
    driver.find_element(By.CLASS_NAME, 'btn').click()

    try:
        alert = WebDriverWait(driver, 10).until(EC.alert_is_present())
        alert.accept()
        driver.find_element(By.CSS_SELECTOR, 'a[href="/signup"]').click()
        driver.find_element(By.ID, 'username').send_keys('dzy')
        driver.find_element(By.ID, 'password').send_keys('123456')
        driver.find_element(By.ID, 'password2').send_keys('123456')
        driver.find_element(By.CLASS_NAME, 'btn').click()
        alert = WebDriverWait(driver, 10).until(EC.alert_is_present())
        alert.accept()

    except:
        pass

    article = driver.find_element(By.ID, 'article')
    actions = ActionChains(driver)

    actions.move_to_element(article)
    actions.click_and_hold()
    actions.move_by_offset(450, 200)
    actions.release()
    actions.perform()
    time.sleep(5)