UNPKG

7.51 kBTypeScriptView Raw
1import * as webdriver from './index';
2import * as remote from './remote';
3
4/**
5 * IEDriverServer logging levels.
6 * @enum {string}
7 */
8export type Level = 'FATAL' | 'ERROR' | 'WARN' | 'INFO' | 'DEBUG' | 'TRACE';
9
10/**
11 * A WebDriver client for Microsoft's Internet Explorer.
12 */
13export class Driver extends webdriver.WebDriver {
14 /**
15 * Creates a new session for Microsoft's Internet Explorer.
16 *
17 * @param {(Capabilities|Options)=} options The configuration options.
18 * @param {(remote.DriverService)=} opt_service The `DriverService` to use
19 * to start the IEDriverServer in a child process, optionally.
20 * @return {!Driver} A new driver instance.
21 */
22 static createSession(
23 options?: webdriver.Capabilities|Options,
24 opt_service?: remote.DriverService): Driver;
25
26 /**
27 * This function is a no-op as file detectors are not supported by this
28 * implementation.
29 * @override
30 */
31 setFileDetector(): void;
32}
33
34/**
35 * Class for managing IEDriver specific options.
36 */
37export class Options extends webdriver.Capabilities {
38 constructor();
39
40 /**
41 * Whether to disable the protected mode settings check when the session is
42 * created. Disbling this setting may lead to significant instability as the
43 * browser may become unresponsive/hang. Only 'best effort' support is
44 * provided when using this capability.
45 *
46 * For more information, refer to the IEDriver's
47 * [required system configuration](http://goo.gl/eH0Yi3).
48 *
49 * @param {boolean} ignoreSettings Whether to ignore protected mode settings.
50 * @return {!Options} A self reference.
51 */
52 introduceFlakinessByIgnoringProtectedModeSettings(ignoreSettings: boolean): Options;
53
54 /**
55 * Indicates whether to skip the check that the browser's zoom level is set to
56 * 100%.
57 *
58 * @param {boolean} ignore Whether to ignore the browser's zoom level
59 * settings.
60 * @return {!Options} A self reference.
61 */
62 ignoreZoomSetting(ignore: boolean): Options;
63
64 /**
65 * Sets the initial URL loaded when IE starts. This is intended to be used
66 * with
67 * {@link #ignoreProtectedModeSettings} to allow the user to initialize IE in
68 * the proper Protected Mode zone. Setting this option may cause browser
69 * instability or flaky and unresponsive code. Only 'best effort' support is
70 * provided when using this option.
71 *
72 * @param {string} url The initial browser URL.
73 * @return {!Options} A self reference.
74 */
75 initialBrowserUrl(url: string): Options;
76
77 /**
78 * Configures whether to enable persistent mouse hovering (true by default).
79 * Persistent hovering is achieved by continuously firing mouse over events at
80 * the last location the mouse cursor has been moved to.
81 *
82 * @param {boolean} enable Whether to enable persistent hovering.
83 * @return {!Options} A self reference.
84 */
85 enablePersistentHover(enable: boolean): Options;
86
87 /**
88 * Configures whether the driver should attempt to remove obsolete
89 * {@linkplain webdriver.WebElement WebElements} from its internal cache on
90 * page navigation (true by default). Disabling this option will cause the
91 * driver to run with a larger memory footprint.
92 *
93 * @param {boolean} enable Whether to enable element reference cleanup.
94 * @return {!Options} A self reference.
95 */
96 enableElementCacheCleanup(enable: boolean): Options;
97
98 /**
99 * Configures whether to require the IE window to have input focus before
100 * performing any user interactions (i.e. mouse or keyboard events). This
101 * option is disabled by default, but delivers much more accurate interaction
102 * events when enabled.
103 *
104 * @param {boolean} require Whether to require window focus.
105 * @return {!Options} A self reference.
106 */
107 requireWindowFocus(require: boolean): Options;
108
109 /**
110 * Configures the timeout, in milliseconds, that the driver will attempt to
111 * located and attach to a newly opened instance of Internet Explorer. The
112 * default is zero, which indicates waiting indefinitely.
113 *
114 * @param {number} timeout How long to wait for IE.
115 * @return {!Options} A self reference.
116 */
117 browserAttachTimeout(timeout: number): Options;
118
119 /**
120 * Configures whether to launch Internet Explorer using the CreateProcess API.
121 * If this option is not specified, IE is launched using IELaunchURL, if
122 * available. For IE 8 and above, this option requires the TabProcGrowth
123 * registry value to be set to 0.
124 *
125 * @param {boolean} force Whether to use the CreateProcess API.
126 * @return {!Options} A self reference.
127 */
128 forceCreateProcessApi(force: boolean): Options;
129
130 /**
131 * Specifies command-line switches to use when launching Internet Explorer.
132 * This is only valid when used with {@link #forceCreateProcessApi}.
133 *
134 * @param {...(string|!Array.<string>)} var_args The arguments to add.
135 * @return {!Options} A self reference.
136 */
137 addArguments(...var_args: string[]): Options;
138
139 /**
140 * Configures whether proxies should be configured on a per-process basis. If
141 * not set, setting a {@linkplain #setProxy proxy} will configure the system
142 * proxy. The default behavior is to use the system proxy.
143 *
144 * @param {boolean} enable Whether to enable per-process proxy settings.
145 * @return {!Options} A self reference.
146 */
147 usePerProcessProxy(enable: boolean): Options;
148
149 /**
150 * Configures whether to clear the cache, cookies, history, and saved form
151 * data before starting the browser. _Using this capability will clear session
152 * data for all running instances of Internet Explorer, including those
153 * started manually._
154 *
155 * @param {boolean} cleanSession Whether to clear all session data on startup.
156 * @return {!Options} A self reference.
157 */
158 ensureCleanSession(cleanSession: boolean): Options;
159
160 /**
161 * Sets the path to the log file the driver should log to.
162 * @param {string} file The log file path.
163 * @return {!Options} A self reference.
164 */
165 setLogFile(file: string): Options;
166
167 /**
168 * Sets the IEDriverServer's logging {@linkplain Level level}.
169 * @param {Level} level The logging level.
170 * @return {!Options} A self reference.
171 */
172 setLogLevel(level: Level): Options;
173
174 /**
175 * Sets the IP address of the driver's host adapter.
176 * @param {string} host The IP address to use.
177 * @return {!Options} A self reference.
178 */
179 setHost(host: string): Options;
180
181 /**
182 * Sets the path of the temporary data directory to use.
183 * @param {string} path The log file path.
184 * @return {!Options} A self reference.
185 */
186 setExtractPath(path: string): Options;
187
188 /**
189 * Sets whether the driver should start in silent mode.
190 * @param {boolean} silent Whether to run in silent mode.
191 * @return {!Options} A self reference.
192 */
193 silent(silent: boolean): Options;
194
195 /**
196 * Sets the proxy settings for the new session.
197 * @param {capabilities.ProxyConfig} proxy The proxy configuration to use.
198 * @return {!Options} A self reference.
199 */
200 setProxy(proxy: webdriver.ProxyConfig): Options;
201}
202
203/**
204 * Creates {@link selenium-webdriver/remote.DriverService} instances that manage
205 * an [IEDriverServer](https://github.com/SeleniumHQ/selenium/wiki/InternetExplorerDriver)
206 * server in a child process.
207 */
208export class ServiceBuilder extends remote.DriverService.Builder {
209 /**
210 * @param {string=} opt_exe Path to the server executable to use. If omitted,
211 * the builder will attempt to locate the IEDriverServer on the system PATH.
212 */
213 constructor(opt_exe?: string);
214}
215
\No newline at end of file