提交 d18d3012 编写于 作者: J Joao Moreno

green search tests

上级 bfe22532
......@@ -50,7 +50,7 @@ class WindowDriver implements IWindowDriver {
return this._click(selector, 2);
}
private async _click(selector: string, clickCount: number, xoffset?: number, yoffset?: number): TPromise<void> {
private async _getElementXY(selector: string, xoffset?: number, yoffset?: number): TPromise<{ x: number; y: number; }> {
const element = document.querySelector(selector);
if (!element) {
......@@ -72,6 +72,11 @@ class WindowDriver implements IWindowDriver {
x = Math.round(x);
y = Math.round(y);
return { x, y };
}
private async _click(selector: string, clickCount: number, xoffset?: number, yoffset?: number): TPromise<void> {
const { x, y } = await this._getElementXY(selector, xoffset, yoffset);
const webContents = electron.remote.getCurrentWebContents();
webContents.sendInputEvent({ type: 'mouseDown', x, y, button: 'left', clickCount } as any);
webContents.sendInputEvent({ type: 'mouseUp', x, y, button: 'left', clickCount } as any);
......@@ -79,8 +84,12 @@ class WindowDriver implements IWindowDriver {
await TPromise.timeout(100);
}
move(selector: string): TPromise<void> {
throw new Error('Method not implemented.');
async move(selector: string): TPromise<void> {
const { x, y } = await this._getElementXY(selector);
const webContents = electron.remote.getCurrentWebContents();
webContents.sendInputEvent({ type: 'mouseMove', x, y } as any);
await TPromise.timeout(100);
}
async setValue(selector: string, text: string): TPromise<void> {
......
......@@ -12,7 +12,7 @@ import { serve as serveNet } from 'vs/base/parts/ipc/node/ipc.net';
import { combinedDisposable, IDisposable } from 'vs/base/common/lifecycle';
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
import { IPCServer, IClientRouter } from 'vs/base/parts/ipc/common/ipc';
import { SimpleKeybinding } from 'vs/base/common/keyCodes';
import { SimpleKeybinding, KeyCode } from 'vs/base/common/keyCodes';
import { USLayoutResolvedKeybinding } from 'vs/platform/keybinding/common/usLayoutResolvedKeybinding';
import { OS } from 'vs/base/common/platform';
......@@ -29,6 +29,10 @@ class WindowRouter implements IClientRouter {
}
}
function isSilentKeyCode(keyCode: KeyCode) {
return keyCode < KeyCode.KEY_0;
}
export class Driver implements IDriver, IWindowDriverRegistry {
_serviceBrand: any;
......@@ -91,7 +95,11 @@ export class Driver implements IDriver, IWindowDriverRegistry {
}
webContents.sendInputEvent({ type: 'keyDown', keyCode, modifiers } as any);
webContents.sendInputEvent({ type: 'char', keyCode, modifiers } as any);
if (!isSilentKeyCode(keybinding.keyCode)) {
webContents.sendInputEvent({ type: 'char', keyCode, modifiers } as any);
}
webContents.sendInputEvent({ type: 'keyUp', keyCode, modifiers } as any);
await TPromise.timeout(100);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册