开发者社区 问答 正文

关于构建Selenium / python框架的建议?

我想将此文件用作自动化框架中的基本文件,但它似乎不起作用。请帮忙!

另外,请注意缩进,而不是这里遇到的问题。我希望能够导入它,并为我添加到框架中的每个脚本进行设置和删除。

感谢您对如何构建框架的任何帮助!谢谢

展开
收起
祖安文状元 2020-02-21 16:01:33 585 分享 版权
1 条回答
写回答
取消 提交回答
  • 您正在考虑使用什么测试框架?这将完全改变您在测试(或整个测试套件)之前/之后运行此逻辑的语法。

    其他注意事项:

    您要进行哪种类型的测试?

    “单元测试”?(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()
    
    2020-02-21 16:01:46
    赞同 展开评论