javascript - 在 Python 中发送表单请求

标签 javascript php jquery python button

我正在尝试在网站上用 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 的替代方案;这对于那些希望进行按钮单击模拟而不由测试人员自行决定执行正常后续操作的人可能很有用。

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

$("#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 ) 提供了允许跟踪链接等的模拟方法。

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

关于javascript - 在 Python 中发送表单请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22853019/

相关文章:

javascript - NodeJS 使用管道完成文件写入,然后再继续下一次迭代

javascript - 使用 sinonjs 测试方法调用的上下文

javascript - select 中的 ng-options 返回对象而不是字符串

php - 什么是JS等价于PHP函数number_format?

javascript - 如何使用 PHP 打开 Bootstrap 模式?

php - 每行打印 ">"

javascript - Zebra 日期选择器 - 不工作

javascript - 未捕获的语法错误 : Unexpected token C in JSON at position 0

javascript - 具有心跳效果的jquery调整图像大小

jquery - 在 jquery 中设置具有部分名称的所有字段的值