MCPcopy Create free account
hub / github.com/InverseUI/InverseUI-Recorder / assertElement

Method assertElement

util/dom_utils.js:374–482  ·  view source on GitHub ↗
(xpath, assertion)

Source from the content-addressed store, hash-verified

372
373 // Assert element conditions
374 assertElement(xpath, assertion) {
375 const element = this.findElement(xpath);
376
377 const result = {
378 xpath: xpath,
379 assertion: assertion,
380 success: false,
381 element: null,
382 message: ''
383 };
384
385 if (!element) {
386 result.message = `Element not found: ${xpath}`;
387 return result;
388 }
389
390 result.element = {
391 exists: true,
392 tagName: element.tagName,
393 id: element.id,
394 className: element.className
395 };
396
397 switch (assertion.type) {
398 case 'exists':
399 result.success = true;
400 result.message = 'Element exists';
401 break;
402
403 case 'visible':
404 result.success = this.isElementVisible(element);
405 result.message = result.success ? 'Element is visible' : 'Element is not visible';
406 break;
407
408 case 'enabled':
409 result.success = !element.disabled;
410 result.message = result.success ? 'Element is enabled' : 'Element is disabled';
411 break;
412
413 case 'text_equals':
414 const actualText = element.textContent.trim();
415 result.success = actualText === assertion.value;
416 result.actualValue = actualText;
417 result.message = result.success ?
418 'Text matches expected value' :
419 `Text mismatch. Expected: "${assertion.value}", Actual: "${actualText}"`;
420 break;
421
422 case 'text_contains':
423 const elementText = element.textContent.trim();
424 result.success = elementText.includes(assertion.value);
425 result.actualValue = elementText;
426 result.message = result.success ?
427 'Text contains expected value' :
428 `Text does not contain "${assertion.value}"`;
429 break;
430
431 case 'value_equals':

Callers 1

initMethod · 0.95

Calls 2

findElementMethod · 0.95
isElementVisibleMethod · 0.95

Tested by

no test coverage detected