2017-09-04 73 views
0

我在RF中有很多测试和自己的功能,但直到现在我不需要使用webdriver的功能,导致我所有的功能只返回值。使用webdriver的新机器人框架功能

现在我需要做一个功能,粘贴一些文本在一个不写。 我该如何将它应用到我的测试中?

我的意思是我不知道如何将该功能与RF创建的webdriver连接起来。

我自己的lib: `

# -*- coding: utf-8 -*- 
import random 
import os 
from robot.errors import ExecutionFailed 
from robot.libraries.BuiltIn import logger 
from datetime import datetime 
from selenium.webdriver.common.keys import Keys 

def get_ID_from_URL(url): 
    x = url.split('names/')[-1] 
    x = x.split('/') 
    return x[0] 

def random_number(): 
    random_num = random.randint(100000, 9000000) # random integer in range 
    return random_num 


def return_list(input_text): 
    x = input_text.split(';') 
    return x 

. 
. 
. 

def paste(locator, text): 
    os.system("echo %s| clip" % text.strip()) 
    element = driver.find_element_by_xpath(locator) 
    element.send_keys(Keys.CONTROL, 'v') 

我需要与粘贴功能帮助。

感谢

+0

在我看来,这已经无关,与机器人框架不过是一个纯Python/webdriver的问题。所以删除Robot Framework标签是适当的。这是一个已知的错字吗? 'ellement.send_keys(Keys.CONTROL,'v')'即应该是'element.send_keys(Keys.CONTROL,'v')' –

+0

Yes just missclick。 但我的问题的任何解决方案? 我认为如果我使用硒,RF Tah是合适的,因此我不需要帮助。但在RF中,我不知道如何连接到webdriver。 – MIroslav

回答

0

您可以通过使用该方法_current_browser得到的webdriver的当前实例。您可以通过首先获取硒库的当前实例来调用该方法。

例子:

from robot.libraries.BuiltIn import BuiltIn 

def paste(xpath, text): 
    se2lib = BuiltIn().get_library_instance("Selenium2Library") 
    driver = se2lib._current_browser() 
    element = driver.find_element_by_xpath(xpath) 
    ... 
+0

谢谢,我已经做了,但我使用'browser = s2l._browser' 现在我只需要等待元素可见,因为我得到错误。 – MIroslav