是否可以将此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)
答案 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,所以我无法告诉你这个特例。在运行时检索库的实例应该仍然可以正常工作。