2017-10-20 5 views
1

Ich habe einen Python-Code erstellt, um einen Chrome-Browser zu initialisieren und ich möchte diese Treiberinstanz an Robot Framework übergeben, damit die Schlüsselwörter von RF für diese Instanz funktionieren. Bitte lassen Sie mich wissen, wie ich das gleiche machen könnte. Der Code Py für eine Datei Initialisieren ist:Robot Framework: Wie benutze ich Benutzer erstellte Browser-Instanz in Robot Framework

'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)' 

Nun, wenn es in Robot Framework, öffnet der Browser aber die RF-Keywords funktioniert nicht drauf (selenium2library Schlüsselwörter). Grundsätzlich öffne ich eine Browser-Instanz mit dem benutzerdefinierten Schlüsselwort und maximiere die Verwendung von selen2library-Schlüsselwörtern in RF. Leider funktioniert es nicht. Bitte lassen Sie mich wissen, wie diese Browser-Instanz zu RF passieren:

'*** 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} ' 

Der Maximierungs Browser-Fenster ist ein RF-Schlüsselwort und ich möchte es auf meinem browserinstance arbeiten

+0

Gibt es einen Grund, warum Sie Ihre eigenen Treiber zu schaffen sind, anstatt den Fahrer unter Verwendung erstellt von 'ExtendedSelenium2Library'? Warum verwenden Sie nicht den Code, der von 'ExtendedSelenium2Library' geöffnet wurde, anstatt umgekehrt? –

+0

Faire Warnung bei 'Maximize Browser Window': Es funktioniert nicht immer wie angekündigt, besonders in Chrome. Außerdem kann ich Ihren Testfall verkürzen: 'Browser $ {URL} chrome' öffnen,' Browserfenster maximieren'. Vorausgesetzt, 'Maximize Browser Window' funktioniert für Ihr Setup, das wird genau das tun, was Sie scheinbar zu tun versuchen. Sie müssen SeleniumKeywords nicht explizit aufrufen, Sie haben diese exakten Schlüsselwörter in Ihrer Instanz bereits mit Ihrem Aufruf 'Library ExtendedSelenium2Library' initialisiert. –

Antwort

0

Ich habe meine eigene Bibliothek geschrieben, aber ich erweitert die Selenium2Library und ich kann die Selenium2Library Schlüsselwörter mit meinen eigenen mischen. Die Selenium2Library oder in Ihrem Fall die ExtendedSelenium2Library erkennt die gerade in Python gestartete Sitzung nicht und gibt den Fehler "Kein Browser ist offen" aus. Das Schlüsselwort "Maximize Browser Window" beruht auf einem Browser, der zuvor mit dem Schlüsselwort "Open Browser" geöffnet wurde.

Wenn Sie wirklich Ihre eigene Selenium Bibliothek benötigen, können Sie etwas tun:

class SeleniumKeywords(ExtendedSelenium2Library): 

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