Selenium开发人员决定停止全页截图功能:https://github.com/SeleniumHQ/selenium/issues/3912。
在应用程序测试脚本中模仿这个特性需要哪些代码呢?
我试图降级为Selenium 3.3.1,但有些依赖于驱动程序和/或浏览器版本,这是不兼容的。
发布于 2017-08-04 14:03:16
在一个晦涩的开源库中找到的解决方案:
pom.xml
<dependency>
<groupId>ru.yandex.qatools.ashot</groupId>
<artifactId>ashot</artifactId>
<version>1.5.4</version>
</dependency>
SomeJavaTest.java
private void screenshot(File out) throws IOException, InterruptedException, AWTException {
final Screenshot screenshot = new AShot()
.shootingStrategy(ShootingStrategies.viewportPasting(100))
.takeScreenshot(driver);
final BufferedImage image = screenshot.getImage();
ImageIO.write(image, "PNG", out);
}
发布于 2017-07-24 05:50:11
尝尝这个。
import unittest
from selenium import webdriver
import datetime
class Tests(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome(desired_capabilities={'browserName': 'chrome', 'chromeOptions': {'args': ['--headless'], 'binary': '/Applications/Google Chrome Canary.app/Contents/MacOS/Google Chrome Canary'}})
self.driver.get('http://google.com/')
def tearDown(self):
self.driver.quit()
def test_screenshot(self):
width = self.driver.execute_script(
"return Math.max(document.body.scrollWidth, document.body.offsetWidth, document.documentElement.clientWidth, document.documentElement.scrollWidth, document.documentElement.offsetWidth);")
height = self.driver.execute_script(
"return Math.max(document.body.scrollHeight, document.body.offsetHeight, document.documentElement.clientHeight, document.documentElement.scrollHeight, document.documentElement.offsetHeight);")
self.driver.set_window_size(width+100, height+100)
self.driver.save_screenshot('screenshot ' + str(datetime.datetime.now().date()) + ' ' + str(datetime.datetime.now().time()) + '.png')
if __name__ == '__main__':
unittest.main()
https://stackoverflow.com/questions/45270682
复制相似问题