mirror of
https://github.com/NaiboWang/EasySpider.git
synced 2025-04-22 15:59:39 +08:00
Docker Support
This commit is contained in:
parent
b2a6fd6b6b
commit
ad568af5f3
@ -1721,8 +1721,11 @@ class BrowserThread(Thread):
|
||||
try:
|
||||
actions = ActionChains(self.browser) # 实例化一个action对象
|
||||
if newTab == 1: # 在新标签页打开
|
||||
# Ctrl + Click
|
||||
actions.key_down(Keys.CONTROL).click(element).key_up(Keys.CONTROL).perform()
|
||||
if sys.platform == "darwin": # Mac
|
||||
actions.key_down(Keys.COMMAND).click(element).key_up(Keys.COMMAND).perform()
|
||||
else:
|
||||
# Ctrl + Click
|
||||
actions.key_down(Keys.CONTROL).click(element).key_up(Keys.CONTROL).perform()
|
||||
else:
|
||||
actions.click(element).perform()
|
||||
except Exception as e:
|
||||
|
@ -2253,6 +2253,7 @@ if __name__ == '__main__':
|
||||
"keyboard": True, # 是否监听键盘输入
|
||||
"pause_key": "p", # 暂停键
|
||||
"version": "0.6.2",
|
||||
"docker_driver": "",
|
||||
}
|
||||
c = Config(config)
|
||||
print(c)
|
||||
@ -2442,8 +2443,14 @@ if __name__ == '__main__':
|
||||
except:
|
||||
browser = "chrome"
|
||||
if browser == "chrome":
|
||||
selenium_service = Service(executable_path=driver_path)
|
||||
browser_t = MyChrome(service=selenium_service, options=options)
|
||||
if c.docker_driver == "":
|
||||
print("Using local driver")
|
||||
selenium_service = Service(executable_path=driver_path)
|
||||
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":
|
||||
from selenium.webdriver.edge.service import Service as EdgeService
|
||||
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
|
||||
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):
|
||||
# # 在这里改变查找元素的行为
|
||||
|
Loading…
x
Reference in New Issue
Block a user