2012-06-12 230 views
0

我知道这是可能的Perl,但我想知道这是否可以在PHP中完成。打开窗口,浏览它

我想要做的是打开带有窗口的浏览器,单击该页面中的链接或在浏览器中导航,然后它有一个简单的文本框称为测试,然后我想将文本放入该框中点击提交并全部在PHP中完成。我知道jQuery和Javascript,所以我很好,如果这个小项目的一部分应该在这两个任何一个。我对它做了一些研究,找不到明确的方法。

我不需要为我提供的书面代码,我只需要一个建议的答案,如果可能的话,小代码做一些技巧。

在此先感谢。

-G

+0

PHPUnit似乎有[Selenium绑定](http://www.phpunit.de/manual/3.6/en/selenium.html)应该使这可能...但该功能被标记为“部分实施”,我没有任何亲身经历。我会坚持Perl为此。 – Quentin

回答

0

PHP是一个服务器端语言,所以一切都被在服务器上完成,并显示在浏览器发回给用户的结果。你不能在PHP中做这样的事情。你最好的选择是使用javascript点击链接并在页面上提交表单......但是介意解释这是为了什么,所以我们可以提供一种方法来做到这一点?

要在Javascript中使用此功能,您可以使用jQuery的.click()单击链接,并使用.submit()提交表单。由于表单位于第二页,因此提交代码也必须位于该页面上。如果你真的想自动化这个,你可以在iFrame中加载第一页并使用内部的东西,但是这两个页面(parent和iframe)必须位于同一个域中。为了避免这种情况,我会写一个Chrome扩展插件,在这些页面中插入一个小内容脚本和我的JS(点击/提交内容)。

在PHP中,您可以下载第一页,解析您想要点击的链接,然后下载该页面,找出其上的表单并使用cURL提交该表单。您也可以使用cURL来下载页面。这里有一个关于如何get the contents of remote files using php的教程。

+0

PHP是一种编程语言。它最常用作Web编程的服务器端语言,但它的确有其他支持。 – Quentin

+0

您可以使用PHP-Cli为PHP控制台制作PHP另一种解释型语言,因此您的声明不是true,@sachleen,它可以在“服务器端脚本”域之外使用。甚至PHP中的shell脚本也是可能的! –

+0

是的,我知道这一点。我为自己使用了PHP CLI。但是从我原来提出的问题中,听起来Grigor希望在客户端而不是在服务器端完成。我想这不是正确的解释。 – sachleen

0

您可以使用curl在PHP中复制表单文章。这里本身为文本框提供了价值。在php中浏览窗口是我不确定的事情。

0

PHP的扩展名为cURL,它能够从PHP下载Web并访问它或将其保存到磁盘。

要填充表单中的字段,您可能先前知道字段名称和表单操作,并在cURL所做的请求中对其进行编码。

该文档是here

希望有帮助!

相关问题