获取webdriver 当webdriver为新实例时会使用 user_agen, proxy, cookie参数来创建 Args: user_agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36 proxy: xxx.xxx.xxx.xxx Returns:
(self, user_agent: str = None, proxy: str = None)
| 64 | return self.driver_cls(**kwargs) |
| 65 | |
| 66 | def get(self, user_agent: str = None, proxy: str = None): |
| 67 | """ |
| 68 | 获取webdriver |
| 69 | 当webdriver为新实例时会使用 user_agen, proxy, cookie参数来创建 |
| 70 | Args: |
| 71 | user_agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36 |
| 72 | proxy: xxx.xxx.xxx.xxx |
| 73 | Returns: |
| 74 | |
| 75 | """ |
| 76 | if not self.is_full and not self.thread_safe: |
| 77 | with self.lock: |
| 78 | if not self.is_full: |
| 79 | driver = self.create_driver(user_agent, proxy) |
| 80 | self.queue.put(driver) |
| 81 | self.driver_count += 1 |
| 82 | elif self.thread_safe: |
| 83 | if not self.driver: |
| 84 | driver = self.create_driver(user_agent, proxy) |
| 85 | self.driver = driver |
| 86 | self.driver_count += 1 |
| 87 | |
| 88 | if self.thread_safe: |
| 89 | driver = self.driver |
| 90 | else: |
| 91 | driver = self.queue.get() |
| 92 | |
| 93 | return driver |
| 94 | |
| 95 | def put(self, driver): |
| 96 | if not self.thread_safe: |
no test coverage detected