Я работаю над проектом, который нуждается в автоматизации передачи данных и веб-слом, для которых я использую Селен и BeautifulSoup (python2.7).Многопоточность в селеном питона
Я хочу открыть только один экземпляр веб-браузера и войдите на сайт, держа эту сессию, я пытаюсь открывать новые вкладки, которые будут независимо друг от друга контролируемых потоков, каждый поток контролируя вкладку и выполнять свою задачу. Как я должен это делать? Примерный код будет приятным. Ну вот мой код:
def threadFunc(driver, tabId):
if tabId == 1:
#open a new tab and do something in it
elif tabId == 2:
#open another new tab with some different link and perform some task
.... #other cases
class tabThreads(threading.Thread):
def __init__(self, driver, tabId):
threading.Thread.__init__(self)
self.tabID = tabId
self.driver = driver
def run(self):
print "Executing tab ", self.tabID
threadFunc(self.driver, self.tabID)
def func():
# Created a main window
driver = webdriver.Firefox()
driver.get("...someLink...")
# This is the part where i am stuck, whether to create threads and send
# them the same web-driver to stick with the current session by using the
# javascript call "window.open('')" or use a separate for each tab to
# operate on individual pages, but that will open a new browser instance
# everytime a driver is created
thread1 = tabThreads(driver, 1)
thread2 = tabThreads(driver, 2)
...... #other threads
Я открыт для предложений по использованию любого другого модуля при необходимости
Вы можете сделать то же самое вручную, обрабатывать одновременно несколько вкладок браузера? Наверное, не ... «Селен» тоже не сможет этого сделать – Andersson