mirror of
https://github.com/web-infra-dev/midscene.git
synced 2025-07-08 09:31:58 +00:00

* feat(web-integration): use xpath for cache instead of id * feat(web-integration): enhance TaskCache to support xpaths for cache matching and add new test cases * feat(web-integration): add debug log for unknown page types in TaskCache * feat(web-integration): update caching logic and cache hit conditions for Plan and Locate tasks * chore(core): update debug log * feat(web-integration): update rspress.config and enhance TaskCache structure with new properties * feat(web-integration): recalculate id when hit cache * fix(web-integration): update mock implementation in task-cache test to use evaluate method * feat(web-integration): enhance element caching by adding XPath support and improving cache hit logic * chore(core): lint * feat(web-integration): improve XPath handling in web-extractor * test(web-integration): fix tests * feat(core, web-integration): add attributes to LocateResultElement and enhance element handling * fix(core): lint * feat(web-integration): add midsceneVersion to TaskCache and update cache validation logic * fix(core): test * fix(web-integration): update cache validation logic to prevent reading outdated midscene cache files * feat(web-integration): enhance TaskCache to track used cache items and improve cache retrieval logic * fix(core): xpath logic (#710) * feat(core): resue context for locate * feat(core): build yamlFlow from aiAction * feat(core): refine task-cache * feat(core): update cache * feat(core): refine task-cache * feat(core): refine task-cache * feat(core): remove unused checkElementExistsByXPath * feat(core): use yaml file as cache * chore(core): fix lint * chore(core): print warning for previous cache * refactor(core): remove quickAnswer references and improve element matching logic * fix(core): update import path for buildYamlFlowFromPlans * chore(web-integration): update output image and skip task error test * fix(web-integration): update test snapshots to handle beta versions * fix(web-integration): adjust test snapshots for version consistency * fix(web-integration): track original cache length and adjust matching logic in tests * fix(web-integration): update test URLs to reflect new target site and enable previously skipped test * chore(core): update cache docs * fix(core): test * feat(core): try to match element from plan * fix(web-integration): cache id stable when retry in palywright * fix(web-integration): typo * style(web-integration): lint * fix(web-integration): stable cacheid in tests * fix(web-integration): cache id --------- Co-authored-by: quanruzhuoxiu <quanruzhuoxiu@gmail.com>
31 lines
895 B
TypeScript
31 lines
895 B
TypeScript
import { PuppeteerAgent } from '@/puppeteer';
|
|
import { sleep } from '@midscene/core/utils';
|
|
import { afterEach, describe, it, vi } from 'vitest';
|
|
import { launchPage } from './utils';
|
|
|
|
vi.setConfig({
|
|
testTimeout: 120 * 1000,
|
|
});
|
|
|
|
describe('agent with forceSameTabNavigation', () => {
|
|
let resetFn: () => Promise<void>;
|
|
afterEach(async () => {
|
|
if (resetFn) {
|
|
await resetFn();
|
|
}
|
|
});
|
|
|
|
it('open new tab', async () => {
|
|
const { originPage, reset } = await launchPage('https://www.bing.com/');
|
|
resetFn = reset;
|
|
const agent = new PuppeteerAgent(originPage, {
|
|
cacheId: 'puppeteer-open-new-tab',
|
|
});
|
|
await agent.aiAction(
|
|
'type "midscene github" in search box, and press Enter, sleep 5 seconds, and click the result about "midscene" project',
|
|
);
|
|
await sleep(5000);
|
|
await agent.aiAssert('the page is about "midscene" project');
|
|
});
|
|
});
|