/
remote.py
67 lines (49 loc) · 2.06 KB
/
remote.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# -*- coding: utf-8 -*-
# Copyright 2012 splinter authors. All rights reserved.
# Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file.
import subprocess
from selenium.webdriver import Remote
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from splinter.driver.webdriver import BaseWebDriver, WebDriverElement as BaseWebDriverElement
from splinter.cookie_manager import CookieManagerAPI
class WebDriver(BaseWebDriver):
driver_name = "Remote webdriver"
# TODO: This constant belongs in selenium.webdriver.Remote
DEFAULT_URL = 'http://127.0.0.1:4444/wd/hub'
def __init__(self, url=DEFAULT_URL, browser='firefox', wait_time=2, **ability_args):
abilities = getattr(DesiredCapabilities, browser.upper(), {})
for arg in ability_args:
ability_args[arg] = ability_args[arg]
self.driver = Remote(url, abilities)
self.element_class = WebDriverElement
self._cookie_manager = CookieManagerAPI()
super(WebDriver, self).__init__(wait_time)
class WebDriverElement(BaseWebDriverElement):
def mouse_over(self):
"""
Remote Firefox doesn't support mouseover.
"""
raise NotImplementedError("Remote Firefox doesn't support mouse over")
def mouse_out(self):
"""
Remote Firefox doesn't support mouseout.
"""
raise NotImplementedError("Remote Firefox doesn't support mouseout")
def double_click(self):
"""
Remote Firefox doesn't support doubleclick.
"""
raise NotImplementedError("Remote Firefox doesn't support doubleclick")
def right_click(self):
"""
Remote Firefox doesn't support right click'
"""
raise NotImplementedError("Remote Firefox doesn't support right click")
def drag_and_drop(self, droppable):
"""
Remote Firefox doesn't support drag and drop
"""
raise NotImplementedError("Remote Firefox doesn't support drag an drop")
mouseover = mouse_over
mouseout = mouse_out