【问题标题】:InvokeMember("Click") as it come in divInvokeMember("Click") 进入 div
【发布时间】:2013-04-12 06:48:19
【问题描述】:

在网络浏览器中控制一个预订网站。当我搜索 A 到 B 时,它会给出带有价格的项目列表。 (价格是一个单选按钮)当我单击单选按钮时。在某些处理之后创建的新 div 一个名为“submitButton0”的提交按钮出现在网页上。在同一个网页上。网站位置没有改变。我想调用 submitButton0 的点击。

问题是这样的。 webBrowser1_DocumentCompleted 事件已完成。但那个时候 submitButton0 不在页面中。务实的 readio 按钮已被点击。经过一些处理之后,submitButton0 出现在页面上。随着 submitButton0 的到来,我想快速调用它的点击。

解决办法是什么?

【问题讨论】:

    标签: c# webbrowser-control invokemember


    【解决方案1】:

    但是那个时候 submitButton0 不在页面中

    这可能意味着按钮是由 Javascript 添加的。没有办法与脚本执行同步,你需要轮询。在 DocumentCompleted 事件处理程序和 Tick 事件中启用计时器,检查 DOM 是否已更改到足以允许可靠地调用 InvokeClick()。

    请检查网站所有者是否提供了网络服务。稍后添加按钮的事实是该站点的 TOU 不允许自动化的相当强烈的暗示。服务使您的应用程序对网页更改更具弹性。 DOM 轮询技巧几乎可以保证迟早会失效。

    【讨论】:

    • 感谢“计时器”一词。我已经用定时器控制解决了我的问题。谢谢你。
    猜你喜欢
    • 1970-01-01
    • 2011-02-08
    • 2013-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-09
    • 1970-01-01
    • 2013-10-03
    相关资源
    最近更新 更多