2017-11-08 13 views
2

Robot Framework에서 작동하도록이 Python 코드를 이식 할 수 있습니까?Chromedriver를 사용하여 Chromium 애플리케이션을 시작하는 방법은 무엇입니까?

from selenium import webdriver 
from selenium.webdriver.chrome.options import Options 
from selenium.webdriver.common.action_chains import ActionChains 

chrome_options = Options() 
chrome_options.binary_location = 'C:/Program Files (x86)/MyApp.exe' 
driver = webdriver.Chrome('C:/Program Files (x86)/chromedriver.exe', chrome_options=chrome_options) 

셀렌 전화를 내 크롬 애플리케이션에 보내는 로봇에서 크롬 웹 드라이버를 만들려고합니다. 가능한가?

아래의 코드를 참고하여 Python 라이브러리를 만듭니다.하지만 내 앱을 실행하고 닫습니다. 나는 셀레늄/로봇 호출을 할 수 있기를 원한다. 당신은 단순히 Selenium2Library을 확장하여 직접 파이썬 코드를 사용할 수 myLibrary.py

import selenium 
    from selenium import webdriver 
    from selenium.webdriver.chrome.options import Options 
    from selenium.webdriver.common.action_chains import ActionChains 

    from robot.libraries.BuiltIn import BuiltIn 

    def pas_webdriver_instance(): 
    se2lib = BuiltIn().get_library_instance('ExtendedSelenium2Library') 
    chrome_options = Options() 
    chrome_options.binary_location = 'C:/Program Files (x86)/myapp.exe' 
    driver = webdriver.Chrome('C:/Program Files (x86)/chromedriver.exe', chrome_options=chrome_options) 
+0

이 질문은 귀하가 요청한 다른 질문과 어떻게 다른가요? –

답변

0

에 대한

코드입니다. Selenium2Library을 확장하려면 원래 라이브러리를 상속하는 새 클래스를 만들거나 런타임에 runnung 라이브러리의 인스턴스를 가져올 수 있습니다. 에 따라 의견에 귀하의 질문에 대답하기 위해,

:

또는 당신이 절대적으로 로봇 프레임 워크에 포트이 원한다면, 당신은이 키워드 시도 할 수 있습니다

Open Chrome 
    [Arguments] ${url} ${binary_path} 
    ${chrome_options}= Evaluate sys.modules['selenium.webdriver'].ChromeOptions() sys, selenium.webdriver 
    Call Method ${chrome_options} binary_location ${binary_path} 
    Create Webdriver Chrome chrome_options=${chrome_options} 
    Go To ${url} 

편집을 Selenium2Library의 버전은 라이브러리가 마지막 버전에서 많이 수정되었으므로 사용하고 있지만 버전 3 이전 버전을 사용하는 경우 인스턴스 here (속성 _s2l 참조)을 얻는 확장 예제를 볼 수 있습니다. 클래스 상속의 예 ance here (클래스의 선언 참조).

저는 SeleniumLibrary의 마지막 버전을 아직 보지 않았으므로이 특별한 경우를 말할 수 없습니다. 런타임에 라이브러리의 인스턴스를 검색하는 것은 여전히 ​​잘 작동합니다.

+0

정말 고마워요! 이 파이썬 코드가 어떻게 보이는지 binary_location을위한이 파이썬 코드로 Selenium2Library를 확장하고 싶습니다. – lkneafsey

+0

내 편집 된 답변보기 – Verv

+0

도움 주셔서 감사합니다. 다음 코드를 사용하고 있지만 응용 프로그램이 시작되고 종료됩니다. 한 번 URL을 호출하는 일반 셀레늄처럼 열린이 응용 프로그램 인스턴스에 대한 호출을 할 수 있기를 원합니다. – lkneafsey