从 Python 提交基于 Silverlight 的表单(可能使用 JS?)

Submitting a Silverlight based form from Python (maybe with JS?)

我知道这个问题听起来很可疑,但我处于一种奇怪的情况,我已经控制了一个项目,但构建网站的原始供应商保留了服务器和服务器端代码的所有权.

我已经通过 Selenium 成功编写了很多与网站的交互脚本,但我需要编写脚本的活动之一是通过 Silverlight 表单提交文件。据我了解,您不能直接与来自 Python 的 Silverlight 或与 Selenium 交互,但查看源代码看起来 Silverlight 只是用于获取文件位置并显示加载栏,并且实际的表单提交是通过 post 到 ASP 服务器端脚本完成的。但是它有几个隐藏的验证字段。

所以我设想了一条路径,我使用 Selenium 导航到此页面,然后解析该页面以获取验证值,然后提交包含这些值和我要上传的数据的表单。

这种方法可行吗?我在哪里可以找到关于这样的信息和涉及的困难?

Silverlight 可以通过 Windows 辅助功能界面实现自动化。这个范围对于 Whosebug post 来说太大了,但我建议你看看这个:https://msdn.microsoft.com/library/ms727247(v=vs.100).aspx

您可以使用 UI Spy 深入控制 ID,然后使用 Python 的 COM 互操作调用 UI 自动化 API。