Example #1
0
    def start(self, **kwargs):
        '''
        get root ready
        like get root element in windows UIA, get browser to target website

        must have a "browser_name" argument in kwargs to indicate which browser to use
        other kwargs are same as normal selenium webdrivers
        '''
        if not "browser_name" in kwargs:
            LOGGER.error("Browser name not specified")
            raise DriverException("Browser name not specified")

        browser_name = kwargs["browser_name"]
        if not browser_name.upper() in self.support_browsers:
            LOGGER.error("Unsupported browser name: %s", browser_name)
            raise DriverException("Unsupported browser name: %s" %
                                  browser_name)

        #remove browser_name key from kwargs
        del kwargs["browser_name"]

        #for ie browser, need to ignore zoom settings
        if browser_name.upper() == "IE":
            if "capabilities" in kwargs:
                #insert "ignoreZoomSetting" in driver capabilities
                caps = kwargs["capabilities"]
                caps["ignoreZoomSetting"] = True
            else:
                #add default capabilities
                caps = DesiredCapabilities.INTERNETEXPLORER
                caps["ignoreZoomSetting"] = True
                kwargs["capabilities"] = caps

        self.webdriver = self.support_browsers[browser_name.upper()](**kwargs)
Example #2
0
    def start(self, **kwargs):
        '''
        get root ready
        like get root element in windows UIA, get browser to target website

        must have a "browser_name" argument in kwargs to indicate which browser to use
        other kwargs are same as normal selenium webdrivers
        '''
        if not "browser_name" in kwargs:
            LOGGER.error("Browser name not specified")
            raise DriverException("Browser name not specified")

        browser_name = kwargs["browser_name"]
        if not browser_name.upper() in self.support_browsers:
            LOGGER.error("Unsupported browser name: %s" , browser_name)
            raise DriverException("Unsupported browser name: %s" % browser_name)

        #remove browser_name key from kwargs
        del kwargs["browser_name"]

        #for ie browser, need to ignore zoom settings
        if browser_name.upper() == "IE":
            if "capabilities" in kwargs:
                #insert "ignoreZoomSetting" in driver capabilities
                caps = kwargs["capabilities"]
                caps["ignoreZoomSetting"] = True
            else:
                #add default capabilities
                caps = DesiredCapabilities.INTERNETEXPLORER
                caps["ignoreZoomSetting"] = True
                kwargs["capabilities"] = caps

        self.webdriver = self.support_browsers[browser_name.upper()](**kwargs)
Example #3
0
def get_driver():
    '''get driver
    Return: return driver module selected in config
    '''
    try:
        import sys, os
        sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
        driver = __import__(driver_config.driver_used+"_driver")
    except ImportError as e:
        LOGGER.error("Driver load error: %s" % driver_config.driver_used)
        raise e
        
    return driver
Example #4
0
def get_driver():
    '''get driver
    Return: return driver module selected in config
    '''
    try:
        import sys, os
        sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
        driver = __import__(driver_config.driver_used + "_driver")
    except ImportError as e:
        LOGGER.error("Driver load error: %s" % driver_config.driver_used)
        raise e

    return driver
Example #5
0
 def get_translated(self):
     '''
     get translated result from parsed identifier
     '''
     if len(self.parsed_identifier) == 2:
         name = self.parsed_identifier[0]
         value = self.parsed_identifier[1]
         try:
             getattr(MobileBy, name.upper())
         except AttributeError:
             LOGGER.error("identifier not support: %s" , name)
             raise DriverException("identifier not support: %s" % name)
         return getattr(MobileBy, name.upper()), value
     else:
         LOGGER.error("Get error parsed_id: %s" , repr(self.parsed_identifier))
         raise DriverException("Get error parsed_id: %s" % repr(self.parsed_identifier))
Example #6
0
 def get_translated(self):
     '''
     get translated result from parsed identifier
     '''
     if len(self.parsed_identifier) == 2:
         name = self.parsed_identifier[0]
         value = self.parsed_identifier[1]
         try:
             getattr(By, name.upper())
         except AttributeError:
             LOGGER.error("identifier not support: %s", name)
             raise DriverException("identifier not support: %s" % name)
         return getattr(By, name.upper()), value
     else:
         LOGGER.error("Get error parsed_id: %s",
                      repr(self.parsed_identifier))
         raise DriverException("Get error parsed_id: %s" %
                               repr(self.parsed_identifier))
Example #7
0
import re
import inspect

from AXUI.logger import LOGGER
from AXUI.exceptions import DriverException

try:
    import selenium.webdriver as webdriver
except ImportError as e:
    LOGGER.error(
        "To use AXUI selenium driver, you must install selenium python project first, check https://pypi.python.org/pypi/selenium"
    )
    raise e

from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium.webdriver.common.keys import Keys
from . import Translater


class Keyboard(object):
    def __init__(self, selenium_element):
        self.selenium_element = selenium_element

    def input(self, *values):
        '''send keyboard input to UI element

        Keyboard input string:
        (1) For normal charactors like [0~9][a~z][A~Z], input directly
        (2) For special charactors like "space", "tab", "newline", "F1~F12"
            You use {key_name} to replace them, all support keys in "selenium/webdriver/common/keys "
Example #8
0
import re
import inspect

from AXUI.logger import LOGGER
from AXUI.exceptions import DriverException

try:
    import selenium.webdriver as webdriver
except ImportError as e:
    LOGGER.error("To use AXUI selenium driver, you must install selenium python project first, check https://pypi.python.org/pypi/selenium")
    raise e

from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium.webdriver.common.keys import Keys
from . import Translater

class Keyboard(object):
    def __init__(self, selenium_element):
        self.selenium_element = selenium_element

    def input(self, *values):
        '''send keyboard input to UI element

        Keyboard input string:
        (1) For normal charactors like [0~9][a~z][A~Z], input directly
        (2) For special charactors like "space", "tab", "newline", "F1~F12"
            You use {key_name} to replace them, all support keys in "selenium/webdriver/common/keys "
        '''
        translated_values = []
Example #9
0
import re
import inspect

from AXUI.logger import LOGGER
from AXUI.exceptions import DriverException

try:
    import appium.webdriver as webdriver
except ImportError as e:
    LOGGER.error(
        "To use AXUI appium driver, you must install selenium and appium python client first, check https://pypi.python.org/pypi/selenium, https://pypi.python.org/pypi/Appium-Python-Client"
    )
    raise e

from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium.webdriver.common.keys import Keys
from . import Translater


class Keyboard(object):
    def __init__(self, selenium_element):
        self.selenium_element = selenium_element

    def input(self, *values):
        '''send keyboard input to UI element

        Keyboard input string:
        (1) For normal charactors like [0~9][a~z][A~Z], input directly
        (2) For special charactors like "space", "tab", "newline", "F1~F12"
            You use {key_name} to replace them, all support keys in "selenium/webdriver/common/keys "