我正在使用PHP Scriptable Web Browser从一个网站下载一些数据。
并且有形式我们必须将值设置为字段然后单击GO!按钮它将调用java脚本函数,所以我没有得到如何在PHP Scriptable Web浏览器中调用javascript函数。
<input name="order_date_from" size="10" maxlength="10" value="10/24/2013">
To Date:
<input name="order_date_to" size="10" maxlength="10" value="10/24/2013">
Date Type:
<select name="date_type" id="date_type">
<option value="ORIG_ORD_DATE">Orig Ord Date</option>
<option value="MLM_ORD_DATE">Mlm Ord Date</option>
<option value="DATE_SHIP">Ship Date</option>
<option value="RMA_DATE">RMA Date</option>
<option value="RETURN_DATE">Return Date</option>
</select>
<input type="button" value="GO!" style="width:60px;" id="submit_form" onclick="doSubmit()">
然后使用PHP Scriptable Web Browser我使用
设置这些值$browser->setFieldByName('order_date_from', '10/21/2013');
$browser->setFieldByName('order_date_to', '10/21/2013');
$browser->setFieldById('date_type', 'RETURN_DATE');
之后
$log1=$browser->click('GO!');
$ log1应该包含生成的网页,但它没有显示任何内容可以告诉我如何调用javascript函数,在这种情况下是dosumbit()。
提到了链接http://www.simpletest.org/en/browser_documentation.html
谢谢 Gajanan Hiroji
答案 0 :(得分:0)
SimpleTest提供的浏览器模拟模仿了用户可以在标准HTML页面上执行的操作。不支持Javascript,并且不太可能很快就会添加支持。
- http://www.simpletest.org/en/form_testing_documentation.html
所以你不能。
自己对JS进行反向工程,然后重复代码中的任何操作,或者使用支持JS的脚本化浏览器(例如Selenium或PhantomJS)。
答案 1 :(得分:0)
我找到了另一种方法来从一个url传递参数得到结果.dosubmit()函数在内部使用参数调用这个url,所以使用post()方法来获取数据。
这是代码
$parameters = array (
"group_code" => "xxxx",
"selClNo" => "xxxx",
"navigator" => "xxxxxx",
);
$data=$browser->post('https://www.xxxx.com/modules.php?m=charts&option=returns',$parameters);
echo $data