python selenium firefox 截全网页

Python 3.8.2
selenium==3.141.0
requirements
import logging
import logging.config
import unittest
from selenium import webdriver
import time

from selenium.webdriver.common.by import By

config = {"version": 1, "formatters": {"f1": {"format": "%(asctime)s - %(name)s - %(levelname)s - %(threadName)s - %(lineno)d - %(message)s"}},"handlers": {"console": {"class": "logging.StreamHandler", "level": "INFO", "formatter": "f1","stream": "ext://sys.stdout"},"file": {"class": "logging.handlers.RotatingFileHandler", "level": "INFO", "formatter": "f1","filename": "testPy.log", "maxBytes": 10485760, "backupCount": "3","encoding": "utf8"}}, "root": {"level": "INFO", "handlers": ["console", "file"]}}
logging.config.dictConfig(config)

class MyTestCase(unittest.TestCase):

    def setUp(self):
        #v0.27下载地址:https://cdn.npm.taobao.org/dist/geckodriver/v0.27.0/geckodriver-v0.27.0-win64.zip
        self.driver = webdriver.Firefox(executable_path="./drivers/geckodriver.exe")

    def test_something(self):
        driver = self.driver
        #driver.get("http://jira-sh.xxx.local/browse/PUBL-3575")
        driver.get("http://jira-sh.xxx.local/issues/?filter=12918")
        driver.maximize_window()
        driver.find_element(By.CSS_SELECTOR,".login-link").click()
        driver.find_element(By.CSS_SELECTOR, "#login-form-username").send_keys("xxx")
        driver.find_element(By.CSS_SELECTOR, "#login-form-password").send_keys("123456")
        driver.find_element(By.CSS_SELECTOR, "#login-form-submit").click()
        driver.execute_script("return document.body.scrollHeight")
        logging.info(f'宽度为{driver.execute_script("return document.body.scrollWidth")}')
        logging.info(f'高度为{driver.execute_script("return document.body.scrollHeight")}')

        driver.set_window_size(driver.execute_script("return document.body.scrollWidth"),driver.execute_script("return document.body.scrollHeight"))
        driver.save_screenshot("测试用例.png")
        time.sleep(3)

    def tearDown(self):
        self.driver.close()
        pass


if __name__ == '__main__':
    unittest.main()
View Code
原文地址:https://www.cnblogs.com/xiaodebing/p/13631901.html