如何将一个变量从testscript文件传递到自动化中的公共文件

时间:2015-11-02 19:04:08

标签: python

对于iOS自动化,我有一个名为funclib.py的可重用脚本文件。该文件类似于:

if “iPad in device :
    from iPad_resource import *
else:
    from iPhone_resource import *

def fnCreateaccount(email,password,device):
    wd.find_element_by_name("Create an Account").click()
    wait("Create account”)
     wd.find_element_by_xpath(r.email_field()).send_keys(email)
     wd.find_element_by_xpath(r.password()).send_keys(password)
     wd.find_element_by_name("Create account").click()
    wd.find_element_by_name("Agree & Sign up").click()
    wait("Create Vault")
    if(wd.find_element_by_name(“Created Account").is_displayed()):
        tcResPass(" Account is Created")
    else:
          tcResFail("Error in creating account")
    return(email, password)

我有很多Testscript文件,对于每个测试脚本,设备都会有所不同。例如,initial.py是一个测试脚本文件

import os
from selenium import webdriver
from selenium.webdriver.firefox.webdriver import WebDriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

Device = “iPad 2 Retina”

def CreateNewAccountLogin(): 
    email=generateemail(1,12)
        password=get_password(letters,6)
        fnCreateNA(email, password, device)

当我运行时,我收到的错误如下:

`device is not defined in funclib.`

如何将设备值传递给funclib.py?我无法将initial.py导入funclib,因为我有大约20个测试脚本文件。所以我需要导入一些没有意义的人。

你能帮我吗?

1 个答案:

答案 0 :(得分:0)

当您说Device = "iPad 2 Retina"时,您在名为initial的{​​{1}}模块中设置了一个局部变量。 Device模块和funclib模块具有不同的局部变量名称空间。要在initial上设置变量,您必须通过说funclib 明确地