【发布时间】:2019-07-20 14:29:42
【问题描述】:
我在 Google 电子表格上有一个 URL 列表和一些信息,并设法使用 Google Apps 脚本打开了这些 URL。在打开的页面上,有 2 个输入字段和一个确认按钮。我需要脚本从电子表格(我保存为变量)中获取信息并将它们输入到这些字段中。之后,我需要脚本来点击提交按钮。
我不完全确定这是否是解决方案,但我认为我需要通过 id 获取输入字段元素,然后将变量插入其中。但我无法做到这一点,因为 getElementById() 不适用于 Google Apps 脚本。
我做了一些挖掘工作,只找到了在 Google Apps 脚本上使用 HTML 文件的解决方案。但是,我不知道它是否有助于解决这个问题,老实说,我不太了解它。我想这只会增加不必要的步骤,因为我已经设法在另一个选项卡上打开了该页面。
我有第一个输入字段的 ID。第二个字段与第一个字段相距一个“Tab hit”,并且具有动态 ID,因此当我循环脚本以使用所有 URL 执行此操作时,它将不起作用。似乎唯一的属性是 aria-label (我不知道它是否有帮助)。提交按钮没有 ID,但它有一个唯一的类和一个 type="submit"(我可以在检查时看到它,但当我在另一个页面上打开源代码时看不到,不知道是否有区别) .
我已经设法在另一个选项卡上打开 URL 并保存变量信息,现在我被困在将它们插入输入字段并单击提交按钮的步骤上。
到目前为止,这是我的代码:
function fulfill() {
var rangeValues = searchRange.getValues();
var orderId = rangeValues[604][1];
var trackingNumber = rangeValues[604][3];
var shippingCompany = rangeValues[604][4];
var url = "https://someshopifystore.myshopify.com/admin/orders/" + orderId + "/fulfill_and_ship?fulfill_only=true&fulfillment_service_handle=manual&location_id=2085355564&requires_shipping=true";
var html = "<script>window.open('" + url + "');google.script.host.close();</script>";
var userInterface = HtmlService.createHtmlOutput(html);
SpreadsheetApp.getUi().showModalDialog(userInterface, 'Open Tab');
}
OBS1:我需要通过 Google 表格和 Google Apps 脚本来解决它,因为它是更广泛解决方案的一部分。
OBS2:如果有帮助,打开的页面是 Shopify 的履行页面。
OBS3:我对编程还很陌生,而且我是按需学习的,所以除了我专门从事的工作之外,我没有太多的背景知识。如果您不知道答案但可以指出我的某个地方,也将不胜感激。
【问题讨论】:
-
改用shopify api。
-
感谢您的建议。我想了想,这将是我的下一个选择。只是我对 API 的工作原理一无所知,所以我想要一个 Google Apps 脚本解决方案,直到我学会使用 API 来做。
-
您可以通过 Google Apps 脚本连接 api。它会比你目前的方法容易得多。阅读 api 文档。
标签: javascript html dom google-apps-script google-sheets