用于亚马逊德国站卖家税务发票自动选择下载的浏览器JavaScript代码

本文主要是介绍用于亚马逊德国站卖家税务发票自动选择下载的浏览器JavaScript代码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

因为申报VAT,需要从亚马逊德国站后台(https://sellercentral.amazon.co.uk/tax/seller-fee-invoices)下载大量的卖家税务发票PDF文件,这些文件需要先进行筛选,满足税号以DE开头,发票那里以LU开头。
德国亚马逊卖家税务发票

因为亚马逊后台显示的发票是各种各样的,如果肉眼一个个去筛选再下载,看得眼花缭乱,很容易出错,而且很累。就想能不能编写一个浏览器插件自动下载符号条件的发票。开始编写了一个浏览器插件,允许效果不太好。在ChatGPT的提示下,直接把代码放到浏览器开发者模式中的控制台(Console)里运行,把这些符合条件的行标注成黄色,然后再手工点击“查看”按钮进行保存,这样最简单稳定。代码如下:

适合Microsoft Edge浏览器和Google Chrome浏览器:

//进入亚马逊德国站卖家后台税务发票下载页面:
//https://sellercentral.amazon.co.uk/tax/seller-fee-invoices
//打开Microsoft Edge浏览器的WEB开发工具,然后打开"控制台"或"Console",然后在里面复制粘贴下列Javascript代码,敲回车键代码开始运行
//
//pdf文件保存的快捷键是 Ctrl+S,窗口关闭的快捷键是Ctrl+Wfunction xy () {//Edge浏览器德国VAT发票下载自动选择选择需要的文件,包括税号以DE开头及供应商税号以LU开头const rows = document.querySelectorAll('.fba-core-data tbody tr');let totalRows = 0;let invoiceRows = 0;rows.forEach((row, index) => {setTimeout(() => {const taxpayerRegistration = row.querySelector('.info:nth-child(8)').innerText.trim();const supplierRegistration = row.querySelector('.info:nth-child(10)').innerText.trim();const endDate = row.querySelector('.info:nth-child(13)').innerText.trim();if (taxpayerRegistration.startsWith('DE') && supplierRegistration.startsWith('LU') && endDate.includes('2023')) {// 标记为黄色const viewButton = row.querySelector('.action button');if (viewButton) {//viewButton.click();  //自动打开“查看”链接按钮//}row.style.backgroundColor = 'yellow';invoiceRows+=1;console.log(`当前处理行号:${index},总共需要下载的发票数:${invoiceRows}`);}}, index * 100); // 每行间隔1秒//totalRows +=1;console.log(`${index}行全部处理完成`);});}
xy()  //执行函数

适合Firefox浏览器

// 下面代码适合于Firefox浏览器下载VAT发票
function xyz(){const rows = document.querySelectorAll('.fba-core-data tbody tr');let totalRows = 0;// 使用 forEach 遍历每一行rows.forEach((row,index) => {// 在这里执行对每一行的操作const taxpayerRegistration = row.querySelector('.info:nth-child(8)').innerText.trim();const supplierRegistration = row.querySelector('.info:nth-child(10)').innerText.trim();const endDate = row.querySelector('.info:nth-child(13)').innerText.trim();if (taxpayerRegistration.startsWith('DE') && supplierRegistration.startsWith('LU') && endDate.includes('2023')) {// 标记为黄色row.style.backgroundColor = 'yellow';totalRows+=1;console.log(`当前行号:${index}`);//}               });console.log(`总共发票数:${totalRows}`);}
xyz()

代码执行完后符合条件的行全部标注了醒目的黄色,直接点击右边的“查看”按钮下载保存即可:
在这里插入图片描述
本来还做了一个定时自动点击的功能,怕打开太多页面浏览器崩溃,就改成手动点击了。

这篇关于用于亚马逊德国站卖家税务发票自动选择下载的浏览器JavaScript代码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/weixin_55674264/article/details/135820391
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/690397

相关文章

Spring Boot集成Druid实现数据源管理与监控的详细步骤

《SpringBoot集成Druid实现数据源管理与监控的详细步骤》本文介绍如何在SpringBoot项目中集成Druid数据库连接池,包括环境搭建、Maven依赖配置、SpringBoot配置文件... 目录1. 引言1.1 环境准备1.2 Druid介绍2. 配置Druid连接池3. 查看Druid监控

Java中读取YAML文件配置信息常见问题及解决方法

《Java中读取YAML文件配置信息常见问题及解决方法》:本文主要介绍Java中读取YAML文件配置信息常见问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录1 使用Spring Boot的@ConfigurationProperties2. 使用@Valu

创建Java keystore文件的完整指南及详细步骤

《创建Javakeystore文件的完整指南及详细步骤》本文详解Java中keystore的创建与配置,涵盖私钥管理、自签名与CA证书生成、SSL/TLS应用,强调安全存储及验证机制,确保通信加密和... 目录1. 秘密键(私钥)的理解与管理私钥的定义与重要性私钥的管理策略私钥的生成与存储2. 证书的创建与

浅析Spring如何控制Bean的加载顺序

《浅析Spring如何控制Bean的加载顺序》在大多数情况下,我们不需要手动控制Bean的加载顺序,因为Spring的IoC容器足够智能,但在某些特殊场景下,这种隐式的依赖关系可能不存在,下面我们就来... 目录核心原则:依赖驱动加载手动控制 Bean 加载顺序的方法方法 1:使用@DependsOn(最直

SpringBoot中如何使用Assert进行断言校验

《SpringBoot中如何使用Assert进行断言校验》Java提供了内置的assert机制,而Spring框架也提供了更强大的Assert工具类来帮助开发者进行参数校验和状态检查,下... 目录前言一、Java 原生assert简介1.1 使用方式1.2 示例代码1.3 优缺点分析二、Spring Fr

Android kotlin中 Channel 和 Flow 的区别和选择使用场景分析

《Androidkotlin中Channel和Flow的区别和选择使用场景分析》Kotlin协程中,Flow是冷数据流,按需触发,适合响应式数据处理;Channel是热数据流,持续发送,支持... 目录一、基本概念界定FlowChannel二、核心特性对比数据生产触发条件生产与消费的关系背压处理机制生命周期

java使用protobuf-maven-plugin的插件编译proto文件详解

《java使用protobuf-maven-plugin的插件编译proto文件详解》:本文主要介绍java使用protobuf-maven-plugin的插件编译proto文件,具有很好的参考价... 目录protobuf文件作为数据传输和存储的协议主要介绍在Java使用maven编译proto文件的插件

Java中的数组与集合基本用法详解

《Java中的数组与集合基本用法详解》本文介绍了Java数组和集合框架的基础知识,数组部分涵盖了一维、二维及多维数组的声明、初始化、访问与遍历方法,以及Arrays类的常用操作,对Java数组与集合相... 目录一、Java数组基础1.1 数组结构概述1.2 一维数组1.2.1 声明与初始化1.2.2 访问

Javaee多线程之进程和线程之间的区别和联系(最新整理)

《Javaee多线程之进程和线程之间的区别和联系(最新整理)》进程是资源分配单位,线程是调度执行单位,共享资源更高效,创建线程五种方式:继承Thread、Runnable接口、匿名类、lambda,r... 目录进程和线程进程线程进程和线程的区别创建线程的五种写法继承Thread,重写run实现Runnab

Java 方法重载Overload常见误区及注意事项

《Java方法重载Overload常见误区及注意事项》Java方法重载允许同一类中同名方法通过参数类型、数量、顺序差异实现功能扩展,提升代码灵活性,核心条件为参数列表不同,不涉及返回类型、访问修饰符... 目录Java 方法重载(Overload)详解一、方法重载的核心条件二、构成方法重载的具体情况三、不构