【问题标题】:Content not being Posted properly?内容未正确发布?
【发布时间】:2011-10-22 13:39:15
【问题描述】:

我在此 URL http://www.magicbricks.com/bricks/agentSearch.html 上使用 simpleTest WebBrowser 进行数据抓取。但是,尽管一切似乎都正确,但我总是收到错误 City Field is required。我想问题可能在于当 State 的值发生变化时 city 字段中的值会动态变化。有什么解决办法吗?这是我的代码。

<?php
require_once('simpletest/browser.php');

$browser = &new SimpleBrowser();
$browser->addHeader('User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0.2) Gecko/20100101 Firefox/6.0.2');
$browser->get('http://www.magicbricks.com/bricks/agentSearch.html');
$browser->setField('source','agentSearch');
$browser->setField('_transactionType','1');
$browser->setField('_propertyType','1');
$browser->setField('resultPerPage','50');
$browser->setField('agentSearchType','B');
$browser->setField('state','520');
$browser->setField('city','4320');
$browser->setField('keyword','');
$browser->setField('country','50');

print $browser->submitFormById('searchFormBean');
print $browser->getResponseCode()

?>

【问题讨论】:

  • 你不想用POST 代替GET 吗?请参阅此处的演示:simpletest.org/en/form_testing_documentation.html#raw(编辑:好的,我看到您正在尝试提交表单,但它正在为两个选择动态绘制列表。)
  • 看到有两个函数被调用,事件 onChange 在该城市的选择元素上:
  • @jared:是的,但我不能重复。 When state variable is selected some strange content gets posted and I cant replicate the same. @Pabluez:很难找到这些函数的定义位置。
  • 您是否使用 Firebug 或 Chrome 控制台网络选项卡来查看填充这些下拉列表的请求?我的猜测是您需要将这些列表拉入(第一个州,然后是城市)并在 PHP 中对其进行迭代。
  • 此时更好的问题(也许是另一个问题)是“simpleTest 处理源页面的动态内容加载吗?”您不是在处理标准表单提交,因为州和城市选择选项需要动态的异步请求来填充。

标签: php simpletest


【解决方案1】:

这是我注意到的一些错误

字段缺失

  1. 缺少 agentSearchType 字段
  2. 缺少 transactionType(同时存在 transactionType 和 _transactionType)
  3. 缺少propertyType(propertyType和_propertyType都有)

还有一些头信息需要添加如

  1. 参考
  2. 饼干

如果您查看标题,典型的后期测试应该采用这种格式

        POST http://www.magicbricks.com/bricks/agentSearch.html HTTP/1.1
        Host: www.magicbricks.com
        Connection: keep-alive
        Content-Length: 173
        Cache-Control: max-age=0
        Origin: http://www.magicbricks.com
        User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.79 Safari/535.11
        Content-Type: application/x-www-form-urlencoded
        Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
        Referer: http://www.magicbricks.com/bricks/agentSearch.html
        Accept-Encoding: gzip,deflate,sdch
        Accept-Language: en-US,en;q=0.8
        Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
        Cookie: JSESSIONID=nF1UqV3DM2tZC42zByYm6Q**.MBAPP09; __utma=163479907.1423216630.1331970312.1331970312.1331970312.1; __utmb=163479907.1.10.1331970312; __utmc=163479907; __utmz=163479907.1331970312.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); _mbRunstats=3k0ilrpcgprh4tea

        source=agentSearch&agentSearchType=B&country=51&state=601&city=8417&transactionType=11951&_transactionType=1&propertyType=10001&_propertyType=1&keyword=tesy&resultPerPage=50

希望对你有帮助

:D

【讨论】:

    猜你喜欢
    • 2012-11-23
    • 1970-01-01
    • 2016-09-02
    • 1970-01-01
    • 1970-01-01
    • 2020-04-27
    • 2016-08-02
    • 1970-01-01
    • 2018-06-28
    相关资源
    最近更新 更多