【问题标题】:Continue the script if there is no item on the page javascript如果页面 javascript 上没有项目,则继续执行脚本
【发布时间】:2017-08-18 15:10:29
【问题描述】:

我正在写一个关于 imacros 和 javascript 的脚本。脚本点击页面上的按钮,之后出现选择文件下载(pdf)的对话框。

我通过网站检查各种号码并搜索它们的 pdf 文件。在脚本执行过程中,可能会出现页面没有想要的项目的情况(数据还没有接收到,下载文件的按钮没有激活)。

谁知道如何编写一个脚本,当页面上所需的元素不是一个继续工作并取其他值输入表单然后下载文件的脚本时?

for (i=1;i<=3; i++) {
var macro; // Create a variable macro
macro = "CODE:"; // Enter the code for the macro
macro += "URL GOTO=http://www.dpd.ru/ols/order/order.do2"+"\n";// Go to the website
macro += "TAG POS=1 TYPE=INPUT:TEXT ATTR=ID:datePickup CONTENT=my date"+"\n";// Set the date
macro += "TAG POS=1 TYPE=IMG ATTR=ID:filter_show"+"\n";// Advanced Search
macro += "TAG POS=1 TYPE=INPUT:TEXT ATTR=ID:orderNum CONTENT=my number"+"\n"; //Set number of dispatch
macro += "TAG POS=1 TYPE=IMG ATTR=ID:order_refresh_btn"+"\n";// Show orders
macro += "TAG POS=1 TYPE=INPUT:CHECKBOX FORM=ID:order_list_form ATTR=NAME:orderId CONTENT=YES"+"\n"; // Select document
macro += "TAG POS=1 TYPE=IMG ATTR=ID:order_delivery_proof_print_dialog_btn"+"\n"; // Printing a document
macro += "TAG POS=1 TYPE=IMG ATTR=ID:order_delivery_proof_print_form_btn"+"\n";// Download window
macro += "TAB T=2"+"\n";// Opening the second tab
macro += "TAB T=1"+"\n";// Open the tab
macro += "TAG POS=12 TYPE=SPAN ATTR=TXT:close"+"\n"; // Close download menu
iimPlay(macro) // Run the variable
}

enter image description here

【问题讨论】:

  • 我不懂你的英语(尤其是第 3 段),抱歉。你能用俄语添加评论吗?
  • Привет! Пишу скрипт на imacros 和 javascript。 Скрипт нажимает на кнопки на странице, после чего появляется диалоговое окно выбора загрузки файла (pdf)。 Я проверяю различные номера через сайт и ищу для них файл pdf。 Впроцессеработыскриптаможетвозникнутьситуациякогданастраниценебудетнужногоэлемента(данныеещенебылиполученыикнопкадляскачиванияфайлабудетнеактивна)。 Какнужнонаписатьскриптчтобывтотмоменткогданужногоэлементанастраниценеокажетсяскриптпродолжалработуибралдругиезначениядлявводавформучтобызатемскачатьфайл?跨度>
  • 所以你想要if-else in imacros?哪个元素可能不存在(哪一行宏)?
  • macro += "TAG POS=1 TYPE=INPUT:CHECKBOX FORM=ID:order_list_form ATTR=NAME:orderId CONTENT=YES"+"\n"; // 选择文档
  • 我找不到任何可以在浏览器中运行的免费版本的 imacros。对不起,我放弃了。我建议你搜索如何使用 imacros 制作if-else

标签: javascript download element imacros skip


【解决方案1】:

我对你的英语不是很清楚。但根据我的理解,您希望脚本继续工作,即使元素不存在对吗?如果这是您的需要,您可以在代码开头使用“SET !ERRORIGNORE YES”命令。

更新代码:

for (i=1;i<=3; i++) {
var macro; // Create a variable macro
macro = "CODE:"; // Enter the code for the macro
macro += "SET !ERRORIGNORE YES" + "\n"; //Set script to ignore error and continue work 
macro += "URL GOTO=http://www.dpd.ru/ols/order/order.do2"+"\n";// Go to the website
macro += "TAG POS=1 TYPE=INPUT:TEXT ATTR=ID:datePickup CONTENT=my date"+"\n";// Set the date
macro += "TAG POS=1 TYPE=IMG ATTR=ID:filter_show"+"\n";// Advanced Search
macro += "TAG POS=1 TYPE=INPUT:TEXT ATTR=ID:orderNum CONTENT=my number"+"\n"; //Set number of dispatch
macro += "TAG POS=1 TYPE=IMG ATTR=ID:order_refresh_btn"+"\n";// Show orders
macro += "TAG POS=1 TYPE=INPUT:CHECKBOX FORM=ID:order_list_form ATTR=NAME:orderId CONTENT=YES"+"\n"; // Select document
macro += "TAG POS=1 TYPE=IMG ATTR=ID:order_delivery_proof_print_dialog_btn"+"\n"; // Printing a document
macro += "TAG POS=1 TYPE=IMG ATTR=ID:order_delivery_proof_print_form_btn"+"\n";// Download window
macro += "TAB T=2"+"\n";// Opening the second tab
macro += "TAB T=1"+"\n";// Open the tab
macro += "TAG POS=12 TYPE=SPAN ATTR=TXT:close"+"\n"; // Close download menu
iimPlay(macro) // Run the variable
}

希望这就是您要找的东西?

【讨论】:

  • 谢谢,但这不是我所需要的。我不需要跳过这个错误并继续。如果页面上不存在该项目,我需要执行某个代码(在表单中输入其他数据)。它应该更像 if else。
  • 猜你可能需要录制你的任务视频并向我们展示你在“if-else”场景中所做的事情,以便我们更好地理解你的查询...... :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-01
  • 2012-08-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-21
相关资源
最近更新 更多