1#[derive(PartialEq)]
2#[derive(Debug)]
3#[derive(Clone)]
4pub enum WebdriverError {
5 UnsupportedPlatform,
6 FailedRequest,
7 InvalidResponse,
8 Unknow,
9 ElementClickIntercepted,
10 ElementNotInteractable,
11 InsecureCertificate,
12 InvalidArgument,
13 InvalidCookieDomain,
14 InvalidElementState,
15 InvalidSelector,
16 InvalidSessionId,
17 JavascriptError,
18 MoveTargetOutOfBounds,
19 NoSuchAlert,
20 NoSuchCookie,
21 NoSuchElement,
22 NoSuchFrame,
23 NoSuchWindow,
24 ScriptTimeoutError,
25 SessionNotCreated,
26 StaleElementReference,
27 Timeout,
28 UnnableToSetCookie,
29 UnableToCaptureScreen,
30 UnexpectedAlertOpen,
31 UnknowCommand,
32 UnknowError,
33 UnknowMethod,
34 UnsupportedOperation,
35 Custom(String)
36}
37
38impl WebdriverError {
39 pub fn from(error: String) -> Self {
40 match error.as_str() {
41 "element click intercepted" => WebdriverError::ElementClickIntercepted,
42 "element not interactable" => WebdriverError::ElementNotInteractable,
43 "insecure certificate" => WebdriverError::InsecureCertificate,
44 "invalid argument" => WebdriverError::InvalidArgument,
45 "invalid cookie domain" => WebdriverError::InvalidCookieDomain,
46 "invalid element state" => WebdriverError::InvalidElementState,
47 "invalid selector" => WebdriverError::InvalidSelector,
48 "invalid session id " => WebdriverError::InvalidSessionId,
49 "javascript error" => WebdriverError::JavascriptError,
50 "move target out of bounds" => WebdriverError::MoveTargetOutOfBounds,
51 "no such alert" => WebdriverError::NoSuchAlert,
52 "no such cookie" => WebdriverError::NoSuchCookie,
53 "no such element" => WebdriverError::NoSuchElement,
54 "no such frame" => WebdriverError::NoSuchFrame,
55 "no such window" => WebdriverError::NoSuchWindow,
56 "script timeout error" => WebdriverError::ScriptTimeoutError,
57 "session not created" => WebdriverError::SessionNotCreated,
58 "stale element reference" => WebdriverError::StaleElementReference,
59 "timeout" => WebdriverError::Timeout,
60 "unable to set cookie" => WebdriverError::UnnableToSetCookie,
61 "unable to capture screen" => WebdriverError::UnableToCaptureScreen,
62 "unexpected alert open" => WebdriverError::UnexpectedAlertOpen,
63 "unknown command" => WebdriverError::UnknowCommand,
64 "unknown error" => WebdriverError::Unknow,
65 "unknown method" => WebdriverError::UnknowMethod,
66 "unsupported operation" => WebdriverError::UnsupportedOperation,
67 _ => WebdriverError::Custom(error),
68 }
69 }
70}