如何使用Chromedriver启动Chromium应用程序?

时间:2017-11-08 00:18:32

标签: python selenium selenium-chromedriver robotframework

是否可以将此python代码移植到Robot Framework中?

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)

我正在尝试在机器人中创建一个chrome webdriver,它将我的selenium调用发送到我的chrome应用程序。有可能吗?

我创建了一个python库,请参阅下面的代码,但它只是启动我的应用程序并关闭它。我希望能够对它进行硒/机器人调用。

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) 

1 个答案:

答案 0 :(得分:0)

您可以直接展开Selenium2Library并直接使用您的Python代码。要扩展Selenium2Library,您可以创建一个继承原始库的新类,也可以在运行时获取runnung库的实例。

或者,如果您绝对想将其移植到Robot Framework中,可以尝试使用此关键字:

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),以及类继承here的示例(请参阅类的声明)。

我还没有考虑扩展最新版本的SeleniumLibrary,所以我无法告诉你这个特例。在运行时检索库的实例应该仍然可以正常工作。