2017-10-20 1 views
1

크롬 브라우저를 초기화하는 데 Python 코드를 생성했으며이 드라이버 인스턴스를 Robot Framework에 전달하여 RF 키워드가이 인스턴스에서 작동하도록했습니다. 내가 어떻게 할 수 있는지 알려주세요. 파일을 intializing에 대한 피라 코드는 다음과 같습니다 로봇 프레임 워크를 사용하는 경우Robot 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)' 

이제, 브라우저는 (selenium2library 키워드)에 나던 작업 RF 키워드 열리지 만. 기본적으로 사용자 지정 키워드를 사용하여 브라우저 인스턴스를 열고 RF에서 selenium2library 키워드를 사용하여 최대화합니다. 불행히도 그것은 작동하지 않습니다.

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

최대화 브라우저 창은 RF 키워드이며 나는 그것이 내가 내 자신의 라이브러리를 작성했습니다

+0

당신이 당신의 자신의 드라이버를 작성하는 대신에'ExtendedSelenium2Library'에 의해 생성 된 드라이버를 사용하는 이유가 거기에 당신이 정말로 자신의 셀레늄 라이브러리가 필요한 경우

, 당신은 이런 일을 할 수 있습니까? 코드가 'ExtendedSelenium2Library'에 의해 열리는 대신에 다른 방법으로 열지 마십시오. –

+0

'브라우저 창 최대화'에 대한 공정한 경고 : 특히 Chrome에서 광고되는 것처럼 항상 작동하지는 않습니다. 또한 'Open Browser $ {URL} chrome', '브라우저 창 최대화'와 같은 테스트 케이스를 단축 할 수 있습니다. 제공된 '브라우저 창 최대화'가 설정에 대해 작동하면 정확히하려는 것을 수행 할 것입니다. SeleniumKeywords를 명시 적으로 호출 할 필요가 없으며 인스턴스에있는 해당 정확한 키워드를 이미 'Library ExtendedSelenium2Library' 호출로 초기화했습니다. –

답변

0

내 browserinstance 작업을하고 싶지만, I : 나 RF이 브라우저 인스턴스를 전달하는 방법을 알려주세요 Selenium2Library를 확장했으며 Selenium2Library 키워드를 내 자신의 키워드와 혼합 할 수 있습니다. Selenium2Library 또는 귀하의 경우 ExtendedSelenium2Library는 방금 Python으로 시작한 세션을 인식하지 못하고 "No browser is open"오류를 표시합니다. "브라우저 창 최대화"키워드는 "브라우저 열기"키워드로 열었던 브라우저를 사용합니다.

class SeleniumKeywords(ExtendedSelenium2Library): 

    def go_to(self, url, browser="chrome"): 
     self.open_browser(url, browser) 
관련 문제