2017-10-20 14 views
1

J'ai créé un code Python pour initialiser un navigateur Chrome et je souhaite transmettre cette instance de pilote à Robot Framework pour que les mots clés RF puissent fonctionner sur cette instance. S'il vous plaît laissez-moi savoir comment pourrais-je faire la même chose. Le code PY est un fichier initialisation de:Robot Framework: Utilisation de l'instance de navigateur créée par l'utilisateur dans le framework Robot

'class SeleniumKeywords: 

    ROBOT_LIBRARY_SCOPE = 'GLOBAL' 

    def __init__(self): 
     self.driver = None 

    def open_browser(self, browser="chrome"): 
     driver_class = drivers[browser] 
     self.driver = driver_class() 

    def go_to(self, url): 
     self.driver.get(url)' 

maintenant lors de l'utilisation dans le cadre du robot, le navigateur ouvre, mais les mots-clés RF ne marche pas y travailler (mots-clés) selenium2library. Fondamentalement, j'ouvre une instance de navigateur en utilisant le mot-clé personnalisé et en maximisant l'utilisation des mots-clés selenium2library dans RF. Malheureusement, cela ne marche pas. S'il vous plaît laissez-moi savoir comment transmettre cette instance de navigateur RF:

'*** Settings *** 
Library ExtendedSelenium2Library 
Library ../Resources/SeleniumKeywords.py  
Resource ../Global/GlobalConfig.robot 




*** Test Cases *** 
Reuse Session ID 
    SeleniumKeywords.Open Browser chrome 
    maximize browser window 
    SeleniumKeywords.Go To ${URL} ' 

La Maximize fenêtre du navigateur est un mot-clé RF et je veux que cela fonctionne sur mon browserinstance

+0

Y at-il une raison que vous créez votre propre pilote au lieu d'utiliser le pilote créé par 'ExtendedSelenium2Library'? Pourquoi ne pas utiliser votre code avec celui ouvert par 'ExtendedSelenium2Library' au lieu de l'inverse? –

+0

Avertissement correct sur 'Maximize Browser Window': il ne fonctionne pas toujours comme annoncé, en particulier sur Chrome. En outre, je peux raccourcir votre cas de test: 'Open Browser $ {URL} chrome',' Maximize Browser Window'. Si 'Maximize Browser Window' fonctionne pour votre configuration, cela fera exactement ce que vous essayez de faire. Vous n'avez pas besoin d'appeler spécifiquement SeleniumKeywords, vous avez déjà initialisé ces mots clés exacts dans votre instance avec votre appel 'Library ExtendedSelenium2Library'. –

Répondre

0

J'ai écrit ma propre bibliothèque, mais je étendu la Selenium2Library et je peux mélanger les mots-clés Selenium2Library avec le mien. La Selenium2Library ou dans votre cas, la ExtendedSelenium2Library ne reconnaîtra pas la session que vous venez de démarrer en Python et donnera l'erreur "Aucun navigateur n'est ouvert". Le mot-clé "Maximiser la fenêtre du navigateur" repose sur un navigateur préalablement ouvert avec le mot-clé "Ouvrir le navigateur".

Si vous avez vraiment besoin de votre propre bibliothèque de Sélénium, vous pouvez faire quelque chose comme ceci:

class SeleniumKeywords(ExtendedSelenium2Library): 

    def go_to(self, url, browser="chrome"): 
     self.open_browser(url, browser)