如何在python中将Selenium WebDriver屏幕截图显式写入目录
我正在使用PyCharm3开发Win7。我有一个从selenium IDE导出的功能测试“y1.py”。它包括:如何在python中将Selenium WebDriver屏幕截图显式写入目录,python,selenium,selenium-webdriver,pycharm,Python,Selenium,Selenium Webdriver,Pycharm,我正在使用PyCharm3开发Win7。我有一个从selenium IDE导出的功能测试“y1.py”。它包括: class Y1(unittest.TestCase): def setUp(self): self.driver = webdriver.Firefox() self.driver.implicitly_wait(30) self.base_url = "https://www.yahoo.com/" self
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.get_screenshot_as_file('foo.png')
def tearDown(self):
self.driver.quit()
self.assertEqual([], self.verificationErrors)
if __name__ == "__main__":
unittest.main()
当我从pycharm manage.py工具运行脚本时,我意识到屏幕截图正在保存到
PyCharm 3.0.1\jre\jre\bin"
此外,由于某些原因,显式指定路径不起作用:
(driver.get_screenshot_as_file('c/foo1.png') ).
我已经尝试了基于此的变体,但无法使其工作。如何使用python将屏幕截图直接保存到项目根目录下的“屏幕截图”目录中
编辑:
我意识到命令行的manage.py和pycharm的tools->manage.py(这就是我一直在使用的)是有区别的。当您从命令行运行它时,测试运行得更快,屏幕截图保存在项目的根目录中(这正是我想要的)。希望这对某人有帮助Bill我没有成功地使用
获取屏幕截图作为文件()
,但我提供了另一种选择,使用获取屏幕截图作为文件64()
。在其他模块中定义此功能:
def save_screenshot(self, driver, file_name_prefix):
img_str64 = driver.get_screenshot_as_base64()
f = open("screenshots/%s.png" % file_name_prefix, "wb")
f.write(img_str64.decode("base64"))
f.close()
然后,在测试中更换
driver.get_screenshot_as_file('foo.png')
你真的试过
c/foo1.png
?这不是有效的路径。。怎么样C:\\foo1.png
我在上面的帖子中试过这个和其他的。请看编辑。谢谢,我会查出来的
module_containing_this_function.save_screenshot("foo")