我有一个通过应用程序与网站交互的项目。
这个想法是,当我点击一个特定的 web 元素时,会出现第二个表单。它包含两个文本框,输入值并回车后,它将托盘值粘贴到网页上的托盘ID,然后按“+”按钮提交网页。它第一次起作用。但是,网页提交后。尽管我关闭了第二个表单并通过单击该 Web 元素再次打开它,但我不能再做同样的事情了。
调试时,系统确实实现了回车,并完成了其中的所有代码,包括将值粘贴到托盘ID中并单击“+”按钮。但是,它只是在第一次工作,在网络提交后它不再工作了
我不知道为什么?也许我在某些地方错了,我在 C# 编程方面没有太多经验。
这是它的图像
http://i182.photobucket.com/albums/x38/DNK90/app_zpsd55a4065.jpg
提交网页后,第二个表单仍然存在,所以我认为这可能是问题所在。
这是我的代码:
表格 1:我只是发布显示表格 2 并从网络获取元素的部分
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
pallet_element = webBrowser1.Document.GetElementById("pallet_id");
weighing_element = webBrowser1.Document.GetElementById("weighing_auto");
add_new_element = webBrowser1.Document.GetElementById("btnNewWNR");
no_Of_WNR = webBrowser1.Document.GetElementById("noOfWNR");
if (no_Of_WNR != null)
{
// number of row
int no = Convert.ToInt32(no_Of_WNR.GetAttribute("value"));
// button that saves a row
//save_element = webBrowser1.Document.GetElementById("btnSaveWNR" + no);
// gross weight of a row
gross_element = webBrowser1.Document.GetElementById("wnr_gross_weight_" + no);
}
if (pallet_element != null && weighing_element != null && add_new_element != null && gross_element != null)
{
frm2 = new Form2(pallet_element, weighing_element, add_new_element, gross_element);
pallet_element.Click += new HtmlElementEventHandler(OpenWeigh);
}
}
public void OpenWeigh(object sender, HtmlElementEventArgs e)
{
// setting the COM port connection
frm2.SettingRS232(count);
count++;
frm2.ShowDialog();
}
表格 2:
private void txtPallet_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == '\r')
{
if (this.pallet_element != null && this.weighing_element != null && add_new_element != null)
{
// althought the flow comming and get through of below rows
// but nothing happened on the web after the first time run successfully
// set value in the txtPallet into pallet_id
this.pallet_element.InnerText = txtPallet.Text;
this.weighing_element.InnerText = txtWeight.Text;
add_new_element.InvokeMember("click");
this.gross_element.InnerText = txtWeight.Text;
}
}
}