我想将此文件用作自动化框架中的基本文件,但它似乎不起作用。请帮忙!
另外,请注意缩进,而不是这里遇到的问题。我希望能够导入它,并为我添加到框架中的每个脚本进行设置和删除。
感谢您对如何构建框架的任何帮助!谢谢
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
您正在考虑使用什么测试框架?这将完全改变您在测试(或整个测试套件)之前/之后运行此逻辑的语法。
其他注意事项:
您要进行哪种类型的测试?
“单元测试”?(quota b / c,您不能*在某个网页的python中进行单元测试) 整合测试 压力/性能测试? 如果您认为Selenium是对Web应用程序的UI进行单元测试的一种方式,则可能需要检查一些JavaScript测试框架。如果您在UI中使用任何 JavaScript,请一定签出一个JavaScript框架。使用JavaScript操纵DOM,并尝试使用Selenium操纵DOM是DOM的巨大竞争条件。
您打算使用Selenium测试什么?
是否理智地检查了UI的按钮是否正确连接? 您的Web应用的业务规则? 我强烈建议您使用Selenium来验证您的Web应用程序中的快乐路径(即,我可以单击此按钮),并且不要测试您的业务规则;锤击API来执行那些业务规则。与UI相比,API更改的可能性较小,并且对UI的更改经常会在Selenium测试(测试中断会导致失败,而不是应用程序中的真正失败)中导致误报。
请不要为此感到气!!您正在编写测试,太棒了!
Selenium是正确使用的好工具,很容易使它过载并最终导致测试不一致(取决于JS的数量和JS框架)。
关于您的代码的指针特别是:
使类可以根据需要进行实例化和绑定-使跨框架的代码更容易使用,调试b / c更容易,您只需打开python解释器并使用它即可。
# file named my_webdriver.py
import sys
import os
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '../..')))
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.support.ui import WebDriverWait
class MyDriver():
def __init__(self):
self.driver = webdriver.Firefox()
self.base_url = "www.google.com"
self.driver.implicitly_wait(30)
#self.verificationErrors = [] # delete this line, and deal with errors in the framework
self.accept_next_alert = True
self.driver.maximize_window()
self.reset()
def reset(self):
"""So I can be lazy and reset to a know starting point before each test case"""
self.driver.get(self.base_url)
self.driver.delete_all_cookies()
def teardown(self):
self.driver.quit()