【问题标题】:Visual Foxpro attempting to .click() a submit button on web or .submit() the webform - failingVisual Foxpro 尝试 .click() 网络上的提交按钮或 .submit() 网络表单 - 失败
【发布时间】:2013-07-12 08:13:56
【问题描述】:

我正在 Visual Foxpro 中编程。我尝试在提交按钮上以编程方式 .click() 。它以前可以工作,但现在它什么也没有触发。或者,我尝试 .submit() 表单。这也不会触发任何事情。但是如果我点击网站上的提交按钮,它就可以完美运行。谁能帮我吗? arunkasi.co@gmail.com

我的编码如下:

declare Sleep in kernel32 integer nmilliseconds

WebMain = CREATEOBJECT("InternetExplorer.application")
WebMain.navigate("https://epayment.hasil.gov.my/fpx/one.php")
WebMain.visible = .t.

DO WHILE WebMain.busy .OR. WebMain.readystate#4
   Sleep(300)
ENDDO

WebMain.Document.Forms("LogonForm1").jenis_id.selectedindex = 1
WebMain.Document.Forms("LogonForm1").no_id.Value = "123456781234"
WebMain.Document.Forms("LogonForm1").kapca.Value = "56789"
WebMain.Document.Forms("LogonForm1").cmdSubmit.click() && IT DOES NOT WORK !
WebMain.Document.Forms("LogonForm1").Submit() && ALTERNATIVELY, THIS TOO DOES NOT WORK !

【问题讨论】:

  • 您是否检查过以确保您正在加载的网页没有更改任何重要内容,例如 LogonForm1 的名称?

标签: button click submit webpage foxpro


【解决方案1】:

您的行为发生变化的最可能原因是 Internet Explorer 的更新,其中他们改进了安全模型以防止恶意网站向其中注入不需要的行为。

查看您尝试访问的网站是否具有实际的 Web 服务,应用程序可以使用该服务通过 HTTP 而不是使用网页发送 POST 消息(例如使用 MSXML.XMLHTTPRequest 对象)。如果该网站是您公司的网站,那么创建适当的 Web 服务比通过 FoxPro 自动化 Internet Explorer 更能节省时间。

但是,如果这不可能,我相信您可以调整您的代码以使用特定于 IE 的fireEvent 方法。

【讨论】:

    【解决方案2】:

    为 click() 或 submit() 添加一个参数。这将起作用:

    WebMain.Document.Forms("LogonForm1").cmdSubmit.click(1) 
    or
    WebMain.Document.Forms("LogonForm1").Submit(1) 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-21
      • 1970-01-01
      • 2011-05-25
      • 2016-08-12
      • 1970-01-01
      相关资源
      最近更新 更多