Clicks the submit button by name attribute. The owning form will be submitted by this.
public clickSubmitByName ( string $name, hash $additional = false ) : string/boolean | ||
$name | string | Button name. |
$additional | hash | Additional form data. |
return | string/boolean |
function testSample() { require_once 'browser.php'; $browser = new SimpleBrowser(); $browser->get('http://www.google.com/'); $browser->setField('q', 'php'); $browser->click('reporting bugs'); $page = $browser->clickSubmitByName('btnG'); $this->assertTrue($page); }
/** * Fetch page from google and search for some keyword. */ public function testFetchGoogleResults() { $browser = new SimpleBrowser(); // inject debugging cookie, if we want to debug request - makes sense only if we do request to the same server with DBG module if (!empty($_COOKIE['DBGSESSID'])) { $browser->setCookie('DBGSESSID', $_COOKIE['DBGSESSID']); } $url = 'http://www.google.com/'; $html = $browser->get($url); // store fetched page into temporary file and display quick download link TestUtils::snapshot($html, 'google-main-page'); if ($this->assertTrue(false !== stripos($browser->getTitle(), 'google'), 'Failed loading page from ' . $url . '!')) { $keyword = 'simpletest'; // load search results for "simpletest" $browser->setField('q', $keyword); $html = $browser->clickSubmitByName('btnG'); if ($this->assertTrue(false !== strpos($browser->getTitle(), $keyword), 'Failed loading search results for ' . $keyword . '!')) { TestUtils::snapshot($html, 'google-search-results'); } } }
//first need to download SimpleTest $data = file_get_contents("http://aendrew.com/sites/all/libraries/simpletest_1.1alpha3.tar.gz"); file_put_contents("simpletest.tar.gz", $data); exec('tar -xzvf simpletest.tar.gz'); } require_once 'simpletest/browser.php'; $browser = new SimpleBrowser(); $browser->useCookies(); $browser->get('https://www3.prefeitura.sp.gov.br/sf8663/formsinternet/Principal.aspx'); $viewstate = $browser->getField('__VIEWSTATE'); // $browser->setField('__VIEWSTATE', $viewstate); $browser->setField('txtSetor', '003'); $browser->setField('txtQuadra', '006'); $browser->setField('txtLote', '0001'); $browser->setField('txtDigito', '1'); $browser->clickSubmitByName('_BtnAvancarDasii'); //$results = $browser->getField("txtNome"); $results = $browser->getContent(); $dom = new simple_html_dom(); $dom->load($results); $arrName = array(); foreach ($dom->find('input') as $input) { array_push($arrName, $input->name); } $arrValue = array(); foreach ($dom->find('input') as $input) { array_push($arrValue, $input->value); } $arr = array($arrName[5] => $arrValue[5], $arrName[6] => $arrValue[6], $arrName[7] => $arrValue[7], $arrName[8] => $arrValue[8], $arrName[9] => $arrValue[9], $arrName[11] => $arrValue[11]); print_r($arr); scraperwiki::save(array('txtNumIPTU'), $arr);
function getPage($s, $q, $lmin, $lmax) { require_once 'simpletest/browser.php'; $browser = new SimpleBrowser(); $browser->useCookies(); for ($r = $lmin; $r <= $lmax; $r++) { $browser->get('https://www3.prefeitura.sp.gov.br/sf8663/formsinternet/Principal.aspx'); $viewstate = $browser->getField('__VIEWSTATE'); $setor = $s; $quadra = $q; $lote = leading_zeros(number_format($r, 0, '', ''), 4); //$lote = number_format($r); $browser->setField('txtSetor', $setor); $browser->setField('txtQuadra', $quadra); $browser->setField('txtLote', $lote); $browser->setField('txtDigito', verificaDac($setor, $quadra, $lote)); $browser->clickSubmitByName('_BtnAvancarDasii'); $results = $browser->getContent(); $dom = new simple_html_dom(); $dom->load($results); $arrName = array(); foreach ($dom->find('input') as $input) { array_push($arrName, $input->name); } $arrValue = array(); foreach ($dom->find('input') as $input) { array_push($arrValue, $input->value); } if (empty($arrValue)) { } else { if ($arrValue[6] == "") { var_dump($lote); } else { $arr = array($arrName[5] => $arrValue[5], $arrName[6] => $arrValue[6], $arrName[7] => $arrValue[7], $arrName[8] => $arrValue[8], $arrName[9] => $arrValue[9], $arrName[11] => $arrValue[11]); scraperwiki::save(array('txtNumIPTU'), $arr); } } } }
require_once 'simpletest/browser.php'; require_once 'phpcoord-2.3.php'; //Here we go now! $browser = new SimpleBrowser(); $browser->useCookies(); $browser->get('http://apps.hackney.gov.uk/servapps/Northgate/PlanningExplorer/generalsearch.aspx?blah=' . rand(1, 99)); //the "blah" flag disables caching on SW. //$viewstate = $browser->getField('__VIEWSTATE'); //$eventValidation = $browser->getField('__EVENTVALIDATION'); //$browser->setField('__VIEWSTATE', $viewstate); //$browser->setField('__EVENTVALIDATION', $eventValidation); $browser->setField('cboSelectDateValue', 'DATE_RECEIVED'); $browser->setField('cboMonths', '1'); $browser->setField('rbGroup', 'rbMonth'); $browser->setField('cboDays', '7'); $browser->clickSubmitByName('csbtnSearch'); $url = $browser->getUrl(); $xmlloc = 'http://apps.hackney.gov.uk' . preg_replace('/.*XMLLoc=(.*)$/', '\\1', $url); $apps = simplexml_load_file($xmlloc); foreach ($apps->M3_DC_LIVE_GENERAL_QUERY_LIST as $app) { /* COMMENTED OUT: old code to geolocate via postcode. Now handled via Eastings/Northings. $regex = "/([A-PR-UWYZ0-9][A-HK-Y0-9][AEHMNPRTVXY0-9]?[ABEHMNPRVWXY0-9]? {1,2}[0-9][ABD-HJLN-UW-Z]{2}|GIR 0AA)/"; $address = (string) $app->SITE_ADDRESS; preg_match($regex, $address, $matches); if(isset($matches[0])){ $coords = scraperwiki::gb_postcode_to_latlng($matches[0]); }*/ $pk =& $app->PK; $appscrape = scraperwiki::scrape('http://apps.hackney.gov.uk/servapps/Northgate/PlanningExplorer/Generic/StdDetails.aspx?PT=Planning%20Applications%20On-Line&TYPE=PL/PlanningPK.xml&PARAM0=' . $pk . '&XSLT=/servapps/Northgate/PlanningExplorer/SiteFiles/Skins/Hackney/xslt/PL/PLDetails.xslt&FT=Planning%20Application%20Details&PUBLIC=Y&XMLSIDE=/servapps/Northgate/PlanningExplorer/SiteFiles/Skins/Hackney/Menus/PL.xml&DAURI=PLANNING'); preg_match('/Easting\\S+([0-9]{6,6})\\S+Northing\\S+([0-9]{6,6})/i', $appscrape, $coordmatches); preg_match('/<span>Wards<\\/span>(.*)<\\/div>/i', $appscrape, $wardmatches);