Ich verwende die node.js-API von Selenium, um PhantomJS-Instanzen für eine Reihe von Webseiten auszuführen. Der Code, den ich verwende, um die Aktionen auf den Seiten auszuführen, funktioniert gut, aber es scheint, dass nur eine Instanz von Selenium / PhantomJS gleichzeitig ausgeführt werden kann. Diese Funktion wird mehrmals vom gleichen Modul aus aufgerufen und durchläuft Seiten in einem Webshop, in denen die Paginierung clientseitig abgewickelt wird (deshalb benötige ich die Selenium / PhantomJS-Umgebung - um Daten von jeder Seite zu extrahieren).
Auch hier funktioniert der Code an und für sich, aber er kann nicht parallel ausgeführt werden. Was könnte das verursachen?
%Vor%Die parallele Ausführung mit Selen erfolgt normalerweise über Remote WebDrivers und das Selenium Grid2 Framework .
Dieses Tutorial im WeDoQA scheint genau das zu sein, was du willst. Auf einen Blick hat es jeden Test in einer separaten Klasse, während eine zentrale Test-Basisklasse auf den Hub von Grid2 zeigt, der dann (im Tutorial) die Tests parallel mit einem Firefox-Treiber ausführt. Sie könnten dies einfach umstellen, um phantomjs zu verwenden, aber Sie müssen möglicherweise Ihre Teststruktur überarbeiten.
Es scheint, dass Sie nur einen Treiber verwenden. Ich würde einen zweiten Treiber initialisieren und Threading dann parallel ausführen. Ich denke, das könnte den Job erledigen.
Verwenden Sie Thread für die parallele Ausführung oder Sie können ein beliebiges Test-Framework verwenden, das dafür sorgt, dass die Tests parallel ausgeführt werden.
Tags und Links javascript node.js selenium selenium-webdriver phantomjs