From 1907d701dce3a4c9e89b513f3cf93c2fd835f9b6 Mon Sep 17 00:00:00 2001 From: Devin Stokes Date: Wed, 1 May 2019 10:09:41 -0700 Subject: [PATCH 1/2] Fixed bug in browserEngine that wouldn't initialize browser on navigation in some conditions. --- core/browserEngine.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/core/browserEngine.py b/core/browserEngine.py index 8d92336..86cd064 100644 --- a/core/browserEngine.py +++ b/core/browserEngine.py @@ -50,7 +50,4 @@ def _write_response_to_file(response): def navigate_to(uri): if browser is None: init_browser() - browser.get(uri) - - - + browser.get(uri) From 7fea5ff9fd08f52607c8bdd0a2ffdb33622e5f23 Mon Sep 17 00:00:00 2001 From: Devin Stokes Date: Wed, 22 May 2019 14:07:56 -0700 Subject: [PATCH 2/2] Modified the alert detection method to avoid false positives. --- core/browserEngine.py | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/core/browserEngine.py b/core/browserEngine.py index 86cd064..6518c51 100644 --- a/core/browserEngine.py +++ b/core/browserEngine.py @@ -2,27 +2,41 @@ import re import os import sys -from core.log import setup_logger from core.utils import writer from selenium import webdriver from selenium.webdriver.firefox.options import Options -from selenium.common.exceptions import UnexpectedAlertPresentException -from selenium.webdriver.support import expected_conditions as EC +from selenium.common.exceptions import UnexpectedAlertPresentException, NoAlertPresentException def init_browser(): global browser options = Options() - options.add_argument('--headless') + # options.add_argument('--headless') browser = webdriver.Firefox(options=options) def kill_browser(): + global browser if browser is not None: browser.quit() +def is_alert_present(): + global browser + try: + print(browser.switch_to.alert.text) + browser.switch_to.alert.dismiss() + return True + except NoAlertPresentException: + return False + except UnexpectedAlertPresentException: + return True + except Exception as e: + print(e) + + def browser_engine(response): + global browser _write_response_to_file(response) navigate_to('file://' + sys.path[0] + '/test.html') os.remove('test.html') @@ -31,13 +45,15 @@ def browser_engine(response): try: actions.move_by_offset(2, 2) + actions.move_by_offset(-2, -2) actions.perform() - if EC.alert_is_present(): + if is_alert_present(): popUp = True except UnexpectedAlertPresentException: popUp = True - + except Exception as e: + print(e) return popUp @@ -48,6 +64,7 @@ def _write_response_to_file(response): def navigate_to(uri): + global browser if browser is None: init_browser() browser.get(uri)