【问题标题】:Sending a form request in Python在 Python 中发送表单请求
【发布时间】:2023-03-28 16:39:01
【问题描述】:

我正在尝试在网站上模拟 Python 中的按钮单击,当单击该按钮时,它会在 URL 的末尾添加一些内容并返回 false。如果我将这些内容添加到 URL 的末尾,它会将我带到正确的位置,但没有注册按钮被单击,这就是我认为我需要使用 return false 部分的原因。

这里是按钮和按钮区域的确切代码。我不知道这是否真的在做任何事情,或者只是设置按钮并等待 javascript 实际执行。

<div class="contractLink"><button  type="button" value="upgrade to level 3"id="button533e24e4d7c79" class="green build" onclick="window.location.href = 'dorf1.php?a=16&amp;c=fb5ad7'; return false;">
    <div class="button-container addHoverClick">
        <div class="button-background">
            <div class="buttonStart">
                <div class="buttonEnd">
                    <div class="buttonMiddle"></div>
                </div>
            </div>
        </div>
        <div class="button-content">upgrade to level 3</div>
    </div>
</button>

这是在单击按钮时运行脚本的位置。我基本上想模拟通过 python 脚本单击的按钮,该脚本应该转到不同的 URL 并说“它已升级”(不是字面上说“它已升级”,而是让网站认为它是并开始升级过程)

<script type="text/javascript">
    window.addEvent('domready', function()
    {
    if($('button533e24e4d7c79'))
    {
        $('button533e24e4d7c79').addEvent('click', function ()
        {
            window.fireEvent('buttonClicked', [this, {"type":"button","value":"upgrade to level 3","name":"","id":"button533e24e4d7c79","class":"green build","title":"","confirm":"","onclick":"window.location.href = \u0027dorf1.php?a=16\u0026amp;c=fb5ad7\u0027; return false;"}]);
        });
    }
    });
</script>

任何帮助都会很棒,感谢您的宝贵时间。

【问题讨论】:

  • 您的解决方案必须在 python 中吗?您愿意在 jquery 中使用解决方案吗?
  • 我计划制作一个带有 GUI 的程序,该程序有选项,并会发送这些类型的表单/请求等。所以无论我能用什么语言实现,我都会使用:)
  • 好的,我知道如何在 JQuery 中轻松做到这一点,并使用基于 HTML5 的 GUI。我确信 python 中也有解决方案,使用 urllib 或其他东西,但我为此画了一个空白。
  • 用 JQuery 制作 GUI 有多容易?我计划让它独立于浏览器,是否仍然可以使用 JQuery?我真的只想在收到/发送请求时与网站互动。
  • 如果您使用 HTML5 和 CSS 样式开发 GUI,您可以在任何支持 HTML5 的浏览器中运行。我相信您可以创建独立的 HTML5 应用程序(我认为 App.js 可以解决问题)。

标签: javascript php jquery python button


【解决方案1】:

这是使用 Python 的替代方法;这对于那些希望在没有由测试人员自行决定的正常后续操作的情况下进行按钮单击模拟的人来说可能很有用。

假设要模拟的按钮的id是“button533e24e4d7c79”,jQuery库有触发方法来触发这个按钮的点击(或任何支持的事件):

$("#button533e24e4d7c79").trigger("click"); // This will mimic the clicking of the button (programmatically) -- requires Jquery

我的理解是触发方法将调用“click”事件并在事件处理程序处停止(即不会跟踪链接,不会继续提交表单等)。我还没有完全测试,但这是我的理解。

如果想要完全模拟按钮点击,jquery.simulate.js 库 (https://github.com/eduardolundgren/jquery-simulate/blob/master/jquery.simulate.js) 提供了模拟方法来允许跟随链接等。

http://learn.jquery.com/events/triggering-event-handlers/ 的 jQuery 学习页面提供了正确的解释。

【讨论】:

  • Welp.. 我什至无法投票,因为我没有足够的声誉...有人点赞这个人!他非常乐于助人!
猜你喜欢
  • 1970-01-01
  • 2018-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-29
  • 1970-01-01
  • 1970-01-01
  • 2019-02-25
相关资源
最近更新 更多