0

这是我第一次作为提问者使用stackoverflow,所以就这样吧。

我正在尝试实施一个自动更新用于跟踪库存的第三方网站的工作项目。我已经想出了如何调用与调整库存相关的客户端javascript函数,但在我目前的消亡中,这个函数要求用户输入在处理数据之前对数据进行简单的计算和验证。我需要系统自动化,所以如果有人有像我这样的新手程序员可以轻松实现的任何想法,那就太好了。

目前,即使是像 sendKeys 这样的草率解决方案也可以满足我的需求。提前感谢您的时间和考虑!

最好的问候,本

Java脚本函数如下:

function stockValMod(fieldID, doAdd){
var txtField = document.getElementById(fieldID);
if(isNumeric(txtField.value)){
if(doAdd){
var addNum = prompt('Enter the amount you wish to add', 0);
if(!isNumeric(addNum)) alert('You did not enter a valid number');
}else{
var addNum = prompt('Enter the amount you wish to subtract', 0);
if(!isNumeric(addNum)){
alert('You did not enter a valid number');
}else{
addNum = (-1 * addNum);
}
}
if(isNumeric(addNum)){
txtField.value = parseInt(txtField.value) + parseInt(addNum);
txtField.style.backgroundColor = 'lightblue';
document.getElementById('saveButtonTD').style.display = '';
}
}else{
alert('The current value is not a valid number');
}
}

现在,我在 vs 中的代码非常短,到目前为止,我所发现的只是使用以下几行代码从我的 c# 代码中调用这个 java 函数......

int numToSubtract = 10;
object[] args = { "part_182", 1 };
object[] args2 = { "part_182", 10 };
webBrowser1.Document.InvokeScript("stockValMod",args);

这调用该函数很好,但会导致从 javascript 提示符调用中弹出一个窗口......我似乎无法找到如何从我的程序中将数据输入到该文本字段中。

更新.....

所以我发现我可以使用:

webBrowser1.Document.Window.Prompt("haha", "1");

获得与我的网络浏览器中 java 触发的完全相同的提示。如果我可以拦截来自java的请求并将其转储到调用我的提示符中,我可以设置默认值并发送一个回车键以破解这个......但是如何拦截我的浏览器的java请求以获得提示?嗯……

大家好....更新....

经过数小时的搜索和烦恼……我离完成我需要做的事情只有一行代码。

foreach (HtmlElement form in webBrowser1.Document.Forms)form.InvokeMember("submit");

这更新了服务器没有缺陷!感谢所有的帮助!:D

最好的问候,本

4

0 回答 0