【发布时间】:2019-02-08 09:39:28
【问题描述】:
我正在尝试为 selenium 创建一个框架,但坚持使用此驱动程序初始化。PLz 帮助
这是第一次执行的 Base.py 文件。(这里我已经编写了午餐浏览器的函数)
from selenium import webdriver
import configparser
from Utility import Read_Properties
global driver
class Base:
def Lunch_Browser(name):
if name == 'chrome':
driver = webdriver.Chrome(
executable_path='C:/Users/MANJKUM/PycharmProjects/Paintshop/Driver/chromedriver.exe')
driver.implicitly_wait(50)
driver.maximize_window()
driver.get(Read_Properties.readproperty('LOGINDETAIL', 'URL'))
return driver
elif (name == 'ff'):
driver = webdriver.firefox(
executable_path='C:/Users/MANJKUM/PycharmProjects/Paintshop/Driver/chromedriver.exe')
driver.implicitly_wait(50)
driver.maximize_window()
`enter code here`driver.get(Read_Properties.readproperty('LOGINDETAIL', 'URL'))
return driver
else:
print('No Browser')
这里我已经为登录页面的所有 Web 元素的 ID 和 xpath 编写了代码。 它就像页面对象模型。 Login.py
from selenium import webdriver
from Utility import Read_Properties
from selenium.webdriver.common.by import By
from Base import Base
class login(object):
def __init__(self, driver):
self.driver = driver
self.username = driver.find_element(By.ID,'username')
self.password = driver.find_element(By.ID, 'password')
self.login_tbtn = driver.find_element('login-loginbutton')
def username(self):
return self.username
def password(self):
self.password.clear()
self.password.send_keys(Read_Properties.readproperty('LOGINDETAIL', 'PASSWORD'))
def login_btn(self):
return self.login_tbtn
以下代码用于 test_login.py 这里我要写登录页面的测试用例。
import time
from selenium import webdriver
from Base import Base
from POM_Project.Pages.Login import login
from Utility import Read_Properties
from POM_Project.Pages import Login
from Utility import Read_Properties
driver = webdriver.chrome
#obj_Base=Base()
obj_login=login(driver)
def test_Login():
Base.Base.Lunch_Browser('chrome')
time.sleep(20)
obj_login.username(driver)
obj_login.password(driver)
test_Login()
【问题讨论】:
-
您可以编写一个会话范围的夹具来创建和返回驱动程序,并通过在 args 列表中传递其名称在测试中使用它。
-
@hoefling 我尝试过使用fixture,但一个问题是,我可以在所有测试类中访问它。但不知道如何在Pageobject(Login.py>>登录类)中访问它。
标签: python selenium selenium-webdriver pytest