python - Selenium Webdriver 的登录模块
问题描述
我正在尝试登录网站并运行一些测试。有很多链接需要我点击,其他任务要在网页上执行。我编写了一个 python 脚本,它接受命令行参数(浏览器、用户名和密码)并登录到网站。这工作正常。登录模块需要导入到其他脚本中,我可以在其中使用此登录模块执行测试。
测试登录.py
import sys
import argparse
from selenium import webdriver
parser = argparse.ArgumentParser()
parser.add_argument('browser', default='chrome', help='Types of browser:chrome, firefox, ie')
parser.add_argument('username', help='This is the username')
parser.add_argument('password', help='This is the password')
args = parser.parse_args()
setup_parameters = sys.argv[1:]
class Testsite(object):
test_url = 'someurl'
# Initialization Method
def __init__(self):
self.username = setup_parameters[1]
self.password = setup_parameters[2]
if setup_parameters[0] == 'chrome':
self.browser = webdriver.Chrome()
print("Running tests on Chrome browser")
self.browser.implicitly_wait(15)
self.premier_login()
self.premier_close()
elif setup_parameters[0] == 'ie':
self.browser = webdriver.Ie()
print("Running tests on Internet Explorer browser")
self.browser.implicitly_wait(15)
self.premier_login()
self.premier_close()
elif setup_parameters[0] == 'firefox':
self.browser = webdriver.Firefox()
print("Running tests on Firefox browser")
self.browser.implicitly_wait(15)
self.premier_login()
self.premier_close()
elif setup_parameters[0] == 'None':
print('No browser type specified.... continuing with the default browser')
self.browser = webdriver.Chrome()
#Method to login to the site
def site_login(self):
self.browser.get(self.test_url)
self.browser.find_element_by_id("Username").send_keys(self.username)
self.browser.find_element_by_id("Password").send_keys(self.password)
self.browser.find_element_by_id("btnLogin").click()
self.browser.maximize_window()
self.browser.implicitly_wait(10)
# Closing the browser window and terminating the test
def site_close(self):
self.browser.quit()
if __name__ == '__main__':
Testsite().site_login()
如果我想将其导入到其他脚本,如何从上述模块设置驱动程序。
我尝试将上述模块导入其他脚本,但无法设置驱动程序。
解决方案
推荐阅读
- c++ - RabbitMQ C++ 解决方案,从消费者到 RabbitMQ 代理的手动确认
- cicd - 用于赛普拉斯测试的 Jenkins 管道因超时错误而失败
- data-structures - 哪棵树的生产力更高?(高度为 3 的 B-树或高度为 4 的 B+树)
- go - 通过 Go 中的无服务器函数的 HTTP 发布请求返回无效请求错误
- active-directory - 查询哪些域用户登录了特定的exchange用户邮箱
- javascript - React Native API Request 生产速度慢,但开发速度快
- javascript - 如何在按下窗口的后退按钮时触发功能?
- amazon-web-services - 使用 SAM 模板的 API Gateway 中的多个阶段
- swift - 如何使用 CATransaction 为 CALayer 的出现设置动画?
- javascript - 粘性标题 - 溢出-x:自动与溢出-y:未设置,有可能吗?