mirror of
https://github.com/NaiboWang/EasySpider.git
synced 2025-04-22 21:10:28 +08:00
Docker Support
This commit is contained in:
parent
b2a6fd6b6b
commit
ad568af5f3
@ -1721,6 +1721,9 @@ class BrowserThread(Thread):
|
|||||||
try:
|
try:
|
||||||
actions = ActionChains(self.browser) # 实例化一个action对象
|
actions = ActionChains(self.browser) # 实例化一个action对象
|
||||||
if newTab == 1: # 在新标签页打开
|
if newTab == 1: # 在新标签页打开
|
||||||
|
if sys.platform == "darwin": # Mac
|
||||||
|
actions.key_down(Keys.COMMAND).click(element).key_up(Keys.COMMAND).perform()
|
||||||
|
else:
|
||||||
# Ctrl + Click
|
# Ctrl + Click
|
||||||
actions.key_down(Keys.CONTROL).click(element).key_up(Keys.CONTROL).perform()
|
actions.key_down(Keys.CONTROL).click(element).key_up(Keys.CONTROL).perform()
|
||||||
else:
|
else:
|
||||||
|
@ -2253,6 +2253,7 @@ if __name__ == '__main__':
|
|||||||
"keyboard": True, # 是否监听键盘输入
|
"keyboard": True, # 是否监听键盘输入
|
||||||
"pause_key": "p", # 暂停键
|
"pause_key": "p", # 暂停键
|
||||||
"version": "0.6.2",
|
"version": "0.6.2",
|
||||||
|
"docker_driver": "",
|
||||||
}
|
}
|
||||||
c = Config(config)
|
c = Config(config)
|
||||||
print(c)
|
print(c)
|
||||||
@ -2442,8 +2443,14 @@ if __name__ == '__main__':
|
|||||||
except:
|
except:
|
||||||
browser = "chrome"
|
browser = "chrome"
|
||||||
if browser == "chrome":
|
if browser == "chrome":
|
||||||
|
if c.docker_driver == "":
|
||||||
|
print("Using local driver")
|
||||||
selenium_service = Service(executable_path=driver_path)
|
selenium_service = Service(executable_path=driver_path)
|
||||||
browser_t = MyChrome(service=selenium_service, options=options)
|
browser_t = MyChrome(service=selenium_service, options=options, mode='local_driver')
|
||||||
|
else:
|
||||||
|
print("Using remote driver")
|
||||||
|
# Use docker driver, default address is http://localhost:4444/wd/hub
|
||||||
|
browser_t = MyChrome(command_executor=c.docker_driver, options=options, mode='remote_driver')
|
||||||
elif browser == "edge":
|
elif browser == "edge":
|
||||||
from selenium.webdriver.edge.service import Service as EdgeService
|
from selenium.webdriver.edge.service import Service as EdgeService
|
||||||
from selenium.webdriver.edge.options import Options as EdgeOptions
|
from selenium.webdriver.edge.options import Options as EdgeOptions
|
||||||
|
@ -19,11 +19,15 @@ desired_capabilities["pageLoadStrategy"] = "none"
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
class MyChrome(webdriver.Chrome):
|
class MyChrome(webdriver.Chrome, webdriver.Remote):
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, mode='local_driver', *args, **kwargs):
|
||||||
self.iframe_env = False # 现在的环境是root还是iframe
|
self.iframe_env = False # 现在的环境是root还是iframe
|
||||||
super().__init__(*args, **kwargs) # 调用父类的 __init__
|
if mode == "local_driver":
|
||||||
|
webdriver.Chrome.__init__(self, *args, **kwargs)
|
||||||
|
elif mode == "remote_driver":
|
||||||
|
webdriver.Remote.__init__(self, *args, **kwargs)
|
||||||
|
# super().__init__(*args, **kwargs) # 调用父类的 __init__
|
||||||
|
|
||||||
# def find_element(self, by=By.ID, value=None, iframe=False):
|
# def find_element(self, by=By.ID, value=None, iframe=False):
|
||||||
# # 在这里改变查找元素的行为
|
# # 在这里改变查找元素的行为
|
||||||
|
Loading…
x
Reference in New Issue
Block a user