forked from mrlan/EnglishPal
				
			Fix bug 518 and added test script
						commit
						4b6342cf3e
					
				|  | @ -0,0 +1 @@ | ||||||
|  | Subproject commit 8cbc7c9a0ce543db48f80a743c4168ca847ca500 | ||||||
|  | @ -232,6 +232,7 @@ | ||||||
|                     update(data['today_article']); |                     update(data['today_article']); | ||||||
|                     check_pre(data['visited_articles']); |                     check_pre(data['visited_articles']); | ||||||
|                     check_next(data['result_of_generate_article']); |                     check_next(data['result_of_generate_article']); | ||||||
|  |                     toggleHighlighting(); | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|         }); |         }); | ||||||
|  | @ -245,6 +246,7 @@ | ||||||
|                 if(data['today_article']){ |                 if(data['today_article']){ | ||||||
|                     update(data['today_article']); |                     update(data['today_article']); | ||||||
|                     check_pre(data['visited_articles']); |                     check_pre(data['visited_articles']); | ||||||
|  |                     toggleHighlighting(); | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|         }); |         }); | ||||||
|  |  | ||||||
|  | @ -12,24 +12,5 @@ def URL(): | ||||||
| 
 | 
 | ||||||
| @pytest.fixture | @pytest.fixture | ||||||
| def driver(): | def driver(): | ||||||
|     return webdriver.Edge()  # follow the "End-to-end testing" section in README.md to install the web driver executable |     my_driver = webdriver.Chrome() | ||||||
| 
 |     return my_driver | ||||||
| 
 |  | ||||||
| @pytest.fixture |  | ||||||
| def restore_sqlite_database(): |  | ||||||
|     ''' |  | ||||||
|     Automatically restore SQLite database file app/db/wordfreqapp.db |  | ||||||
|     using SQL statements from app/static/wordfreqapp.sql |  | ||||||
|     ''' |  | ||||||
|     con = sqlite3.connect('../db/wordfreqapp.db') |  | ||||||
|     with con: |  | ||||||
|         con.executescript('DROP TABLE IF EXISTS user;') |  | ||||||
|         con.executescript('DROP TABLE IF EXISTS article;') |  | ||||||
|         con.executescript(open('../static/wordfreqapp.sql', encoding='utf8').read()) |  | ||||||
|     con.close() |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| @pytest.fixture(autouse=True) |  | ||||||
| def restart_englishpal(restore_sqlite_database): |  | ||||||
|     (Path(__file__).parent / '../main.py').touch() |  | ||||||
|     time.sleep(1) |  | ||||||
|  |  | ||||||
|  | @ -0,0 +1,43 @@ | ||||||
|  | import time | ||||||
|  | import pytest | ||||||
|  | import uuid | ||||||
|  | from selenium import webdriver | ||||||
|  | from selenium.webdriver import ActionChains | ||||||
|  | from selenium.webdriver.common.by import By | ||||||
|  | from selenium.webdriver.support.ui import WebDriverWait | ||||||
|  | from selenium.webdriver.support import expected_conditions as EC | ||||||
|  | from selenium.common.exceptions import UnexpectedAlertPresentException, NoAlertPresentException, NoSuchElementException, \ | ||||||
|  |     TimeoutException | ||||||
|  | from conftest import URL | ||||||
|  | driver = webdriver.Chrome() | ||||||
|  | def test_bug555(): | ||||||
|  |     try: | ||||||
|  |         driver.maximize_window() | ||||||
|  |         base_url = "http://127.0.0.1:5000" | ||||||
|  |         driver.get(base_url) | ||||||
|  |         article = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.ID, 'article'))) | ||||||
|  |         perform_actions_on_article(driver, article) | ||||||
|  | 
 | ||||||
|  |         next_button = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.ID, 'load_next_article'))) | ||||||
|  |         next_button.click() | ||||||
|  |         print("Clicked next article button.") | ||||||
|  | 
 | ||||||
|  |         prev_button = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.ID, 'load_pre_article'))) | ||||||
|  |         prev_button.click() | ||||||
|  |         print("Clicked previous article button.") | ||||||
|  | 
 | ||||||
|  |     except (TimeoutException, NoSuchElementException) as e: | ||||||
|  |         print(f"An error occurred: {e}") | ||||||
|  | 
 | ||||||
|  |     finally: | ||||||
|  |         driver.quit() | ||||||
|  |         print("Driver closed.") | ||||||
|  | 
 | ||||||
|  | def perform_actions_on_article(driver, article): | ||||||
|  |     actions = ActionChains(driver) | ||||||
|  |     actions.move_to_element(article) | ||||||
|  |     actions.click_and_hold() | ||||||
|  |     actions.move_by_offset(450, 200) | ||||||
|  |     actions.release() | ||||||
|  |     actions.perform() | ||||||
|  |     print("Performed actions on article.") | ||||||
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 20 KiB | 
		Loading…
	
		Reference in New Issue