Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用mechanize勾选复选框_Javascript_Html_Perl_Mechanize - Fatal编程技术网

Javascript 使用mechanize勾选复选框

Javascript 使用mechanize勾选复选框,javascript,html,perl,mechanize,Javascript,Html,Perl,Mechanize,我从这个网站上获得了以下html片段: 我想知道我是否可以使用mechanize勾选复选框?这些框似乎不是使用普通html形成的。我不知道javascript我想你说的是使用Mechanize将信息提交回页面,就像人类使用浏览器勾选复选框一样。最简单的方法是,首先使用WireShark观察使用web浏览器提交表单时发生的一切(选中复选框),然后在使用Perl提交表单时模仿相同的行为。因为WWW::Mechanize不使用javascript,你要么按照建议去做,弄清楚javascript的

我从这个网站上获得了以下html片段:



我想知道我是否可以使用mechanize勾选复选框?这些框似乎不是使用普通html形成的。我不知道javascript

我想你说的是使用Mechanize将信息提交回页面,就像人类使用浏览器勾选复选框一样。最简单的方法是,首先使用WireShark观察使用web浏览器提交表单时发生的一切(选中复选框),然后在使用Perl提交表单时模仿相同的行为。

因为WWW::Mechanize不使用javascript,你要么按照建议去做,弄清楚javascript的功能,然后绕过它,要么你可以使用类似的东西来控制浏览器。

也许你应该检查一下,以便处理javascript网页

WWW::Selenium
是一种浏览器遥控器。 从文档中可以看出:Selenium Remote Control(SRC)是一种测试工具,它允许您使用任何主流的支持JavaScript的浏览器,以任何编程语言针对任何HTTP网站编写自动的web应用程序UI测试。 SRC提供了一个Selenium服务器,它可以自动启动/停止/控制任何受支持的浏览器。它使用Selenium Core工作,这是一个纯HTML+JS库,用JavaScript执行自动化任务;Selenium服务器使用AJAX(XmlHttpRequest)直接与浏览器通信

下载并安装Selenium服务器(Java应用程序)后,可以使用模块
WWW::Seletion
,控制服务器,该服务器将使用浏览器与支持JavaScript的复杂网站进行交互

使用类的实例
WWW::Selenium

my $sel = WWW::Selenium->new(
    host => "localhost",
    port => 4444,
    browser => "*iexplore",
    browser_url => "http://www.google.com",
);
几乎所有与网站的交互都成为可能。为了发出命令(选择,单击,…),必须定义一个定位器来精确定位页面中的元素


您可以在模块文档中找到详细的帮助。

我有一个建议,这当然不是最优雅的解决方案,但本着“完成”的精神,您可以尝试创建一个脚本,为您完成一些gui交互。这是一个相当整洁的小工具。有一次我厌倦了在游戏中升级我的角色,所以我创建了一个autoit脚本来升级我的玩家,我只花了大约一天的时间来学习语法和创建脚本。我敢肯定,自动化一个网页将需要更多,更少的时间。只是一个想法

my $sel = WWW::Selenium->new(
    host => "localhost",
    port => 4444,
    browser => "*iexplore",
    browser_url => "http://www.google.com",
);