同じ問題に苦労しています: 次のアーキテクチャ (下の画面) を実装する予定です:

しかし、私は次の問題に直面しています: 1) 次のパラメーターを使用して selenium-server- を構成する場合 (実行の UI 方法、つまり ffox、chrome、または IE のいずれかで構成) のように
java -jar selenium-server-standalone-2.41.0.jar -role node -hub htt
p://localhost:4444/grid/register -port 7575 -browser browserName=firefox,maxIns
tances=5,platform=WINDOWS
次に、必要な結果を取得します
。
ただし、たとえば、phantomJs 上の GhostDriver の場合、selenium-server-.jar ではなく、-browser パラメーターをサポートしない phantomjs.exe アプリを起動することが期待されます:
不明なパラメーター
不明なパラメーター 2
許可された phantomjs パラメーターのリストに従って 、firefox の 5 つの同時インスタンスと比較して、1 つのファントム jsInstance しか起動できませんでした。
おそらくそれはあなたを助けるかもしれません-今、私はテストアーキテクチャを再編成しており、次のように調整しようとしています: 1 NODE = 1 PhantomJs インスタンス。

ローカルホストでは、さまざまなポートで多くのノード (IE、Ffox、Chrome) を実行できます:
http://gyazo.com/302fab9b6722251aa2cc6d98e2522931
この解決策は私のために働いた:
- プロジェクト構造についてのいくつかの言葉: 私は Linux マシン (192.34.61.205、セレン ハブはここで実行されています) とそれに関連する ~20 の phantomJs ノードを持っています:
http://gyazo.com/0a3a50f2ee1638d10b1766e300438891
すべてのノードで phantomJs はサービスとして実行されています (ノードでphantomJsを再起動するには、コマンドを入力するだけです
sudo service phantomjs restart
)
一部のノードには次の IP があります: 162.243.175.134 162.243.175.97 162.243.175.252 ....
public class BrowserOneInstance extends BaseMethodsForMultipleBrowsers {
private WebDriver driver;
private final static Logger log = LoggerFactory.getLogger(BrowserOneInstance.class);
public static LoginPage loginPage;
public static FacebookUserPage homePage;
FileOperations fileManipulator = new FileOperations();
//staring hub - nodes model (on local WIN machine) over GhostDriver- pHantomJS
@BeforeClass
public void seleniumGrridUponGhostDriver() throws MalformedURLException {
// File phantomjs = Phanbedder.unpack(); //Phanbedder to the rescue!
File phantomjs = new File(System.getProperty("java.io.tmpdir")+File.separator+"phantomjs-1.9.7");
DesiredCapabilities dcaps = new DesiredCapabilities();
dcaps.setCapability("takesScreenshot", true);
dcaps.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY, phantomjs.getAbsolutePath());
// !!!!! hardCoded initizliations of GhostDriver node
// driver = new RemoteWebDriver(new URL("http://localhost:8080"), dcaps);
// driver initialization using method providing IP of running Ghost node connected to running hub
// this.driver= new RemoteWebDriver(new URL("http://"+getGhostNodesIp()+":8080"),dcaps);
// node connected to linux hub:
this.driver = new RemoteWebDriver(new URL("http://162.243.175.134:8080"), dcaps);
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS);
//page instances init()
loginPage = PageFactory.initElements(driver, LoginPage.class);
homePage = PageFactory.initElements(driver, FacebookUserPage.class);
}
@Test
public void abracadabraTestMethod(){
....
}
@AfterTest
public void driverTearDown() {
// close any of the instances: either Firefox or GhostDriver
driver.quit();
}
}
ノート:
phantomJs をクロスプラットフォームの方法で動作させて手動置換を排除したい場合は、Phanbedder - PhantomJS Windows/Mac OS X/Linux ネイティブ バイナリ エンベダーを使用できます。
import net.anthavio.phanbedder.Phanbedder;
......
@BeforeClass
public void seleniumGrridUponGhostDriver() throws MalformedURLException {
File phantomjs = Phanbedder.unpack(); //Phanbedder to the rescue!
DesiredCapabilities dcaps = new DesiredCapabilities();
dcaps.setCapability("takesScreenshot", true);
dcaps.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY, phantomjs.getAbsolutePath());
this.driver = new RemoteWebDriver(new URL("http://162.243.175.134:8080"), dcaps);
......
これがうまくいくことを願っています。