Search for table title with class contains 'title', rather than class == 'title'

This commit is contained in:
Damian Mooyman 2016-08-03 18:36:44 +12:00
parent 1d5e5816f0
commit 869478ac0d
No known key found for this signature in database
GPG Key ID: 78B823A10DE27D1A

View File

@ -105,13 +105,13 @@ JS;
public function readErrorHandlerAfterStep(StepEvent $event) { public function readErrorHandlerAfterStep(StepEvent $event) {
try{ try{
$page = $this->getSession()->getPage(); $page = $this->getSession()->getPage();
$jserrors = $page->find('xpath', '//body[@data-jserrors]'); $jserrors = $page->find('xpath', '//body[@data-jserrors]');
if (null !== $jserrors) { if (null !== $jserrors) {
$this->takeScreenshot($event); $this->takeScreenshot($event);
file_put_contents('php://stderr', $jserrors->getAttribute('data-jserrors') . PHP_EOL); file_put_contents('php://stderr', $jserrors->getAttribute('data-jserrors') . PHP_EOL);
} }
$javascript = <<<JS $javascript = <<<JS
if ('undefined' !== typeof window.jQuery) { if ('undefined' !== typeof window.jQuery) {
window.jQuery(document).ready(function() { window.jQuery(document).ready(function() {
@ -256,7 +256,7 @@ JS;
$this->logException($e); $this->logException($e);
} }
} }
/** /**
* Delete any created files and folders from assets directory * Delete any created files and folders from assets directory
* *
@ -395,7 +395,7 @@ JS;
$clickTypeFn = $clickTypeMap[$clickType]; $clickTypeFn = $clickTypeMap[$clickType];
$element->$clickTypeFn(); $element->$clickTypeFn();
} }
/** /**
* Needs to be in single command to avoid "unexpected alert open" errors in Selenium. * Needs to be in single command to avoid "unexpected alert open" errors in Selenium.
* Example: I click "Delete" in the ".actions" element, confirming the dialog * Example: I click "Delete" in the ".actions" element, confirming the dialog
@ -793,7 +793,7 @@ JS;
$selector)]/ancestor-or-self::table[1]"); $selector)]/ancestor-or-self::table[1]");
// Find tables by a .title node // Find tables by a .title node
$candidates += $page->findAll('xpath', "//table//*[@class='title' and contains(normalize-space(string(.)), $candidates += $page->findAll('xpath', "//table//*[contains(concat(' ',normalize-space(@class),' '), ' title ') and contains(normalize-space(string(.)),
$selector)]/ancestor-or-self::table[1]"); $selector)]/ancestor-or-self::table[1]");
// Some tables don't have a visible title, so look for a fieldset with data-name instead // Some tables don't have a visible title, so look for a fieldset with data-name instead
@ -992,14 +992,14 @@ JS;
$backtrace[1]['function'] $backtrace[1]['function']
)); ));
} }
/** /**
* We have to catch exceptions and log somehow else otherwise behat falls over * We have to catch exceptions and log somehow else otherwise behat falls over
*/ */
protected function logException($e){ protected function logException($e){
file_put_contents('php://stderr', 'Exception caught: '.$e); file_put_contents('php://stderr', 'Exception caught: '.$e);
} }
} }