【问题标题】:Selenium webdriver screenshot not being taken from djangoSelenium webdriver 屏幕截图不是从 django 获取的
【发布时间】:2014-01-31 04:23:06
【问题描述】:

我有一个从 selenium IDE 导出的功能测试“y1.py”。它看起来像:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException
import unittest, time, re    

class Y1(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Firefox()
        self.driver.implicitly_wait(30)
        self.base_url = "https://www.yahoo.com/"
        self.verificationErrors = []
        self.accept_next_alert = True

    def test_y1(self):
        driver = self.driver
        driver.get(self.base_url)
        driver.find_element_by_link_text("Weather").click()
        driver.save_screenshot('out11.png')    

    def tearDown(self):
        self.driver.quit()
        self.assertEqual([], self.verificationErrors)    

if __name__ == "__main__":
    unittest.main()

我创建了一个 django 应用程序“fts”并将脚本放在“fts/tests.py”中。我添加了一行:

driver.save_screenshot('out11.png') 

到最后获取截图。

当我使用以下命令从命令行运行脚本时:

$ python manage.py test fts

测试通过但没有截屏。我该如何解决这个问题?

【问题讨论】:

    标签: python django selenium


    【解决方案1】:

    我个人改用get_screenshot_as_file,这是我的代码:

    from selenium import webdriver
    
    if __name__ == '__main__':
    
       browser = webdriver.Firefox()
    
       try:
          browser.get('http://www.google.com')
          browser.get_screenshot_as_file('screenshot.png')
    
       except Exception as e:
        print e
    

    使用save_screenshot,您必须将图像写入文件以保存在内存中。

    【讨论】:

    • 感谢 Vkt0r,您的方法确实有效,但我意识到屏幕截图正在保存到“PyCharm 3.0.1\jre\jre\bin”??!!。由于某种原因,明确指定路径不起作用( driver.get_screenshot_as_file('c/foo1.png') )。
    • 很奇怪,我用Pycharm 2.7测试过,效果很好。
    猜你喜欢
    • 2015-10-28
    • 1970-01-01
    • 2014-08-25
    • 2019-03-11
    • 2014-07-15
    • 2017-02-12
    • 1970-01-01
    • 2014-08-21
    • 2012-10-26
    相关资源
    最近更新 更多