2012-01-26 110 views
1

我想知道Selenium集線器是否有一個(最好是內置的)方法來請求具有任何瀏覽器的節點。基本上,我希望我的集線器指定類似於「BrowserName ='any'」的內容,匹配運行的實例少於其maxInstances的節點,然後讓節點決定運行哪個瀏覽器。有沒有辦法讓Selenium Grid 2 DesiredCapabilities瀏覽器不可知?

這背後的動機是我想最大限度地提高在任何給定節點上並行運行的測試的數量,而不需要任何一個瀏覽器的多個實例。我不關心哪個瀏覽器正在運行任何給定的測試。

作爲參考,我目前使用硒服務器2.17。

回答

0

確認,這很煩人。

我很肯定有一個命令行參數,讓你重載指定的browserName,但現在我找不到它。

如果我的記憶沒有辦法了,該參數讓你做或多或少你所要求的 - 不管是什麼瀏覽器節點它,也不管什麼樣的樞紐詢問,一個特定的瀏覽器始終啓動。

自我注意:爲硒啓動所有命令行選項的正確列表,並可能將其提交給團隊以包含在wiki中。在任何情況下,實現這一目標

一種方式是寫一個自己的「CapabilityMatcher」類 - 但除非你想創建一個自定義的JAR可能不是一個選項,並希望德樞紐做瀏覽器的改變,而不是單個節點。

+0

確定 - 找到它,它被稱爲「forcedBrowserMode」。看來它只適用於「Selenium-RC」,而不是Webdriver。 http://groups.google.com/group/selenium-developers/browse_thread/thread/e297bee96740c0a?fwc=1 http://www.thoughtworks-studios.com/docs/twist/2.0/help/how_do_i_configure_selenium。 html https://gist.github.com/1647013 –

+0

太棒了,我認爲這應該完成我所需要的(這種或那種)。 – SolsticeShard

0

在這裏你去:

java -jar selenium-server-standalone-2.14.0.jar -role node -hub http://localhost:4444/grid/register -maxSession 3 -browser browserName=firefox,maxInstances=1 -browser browserName=chrome,maxInstances=1 ...

+0

我不確定這是否完成了我所描述的內容。如果我沒有弄錯,這將註冊所有功能打開的節點,但集線器仍然需要在DesiredCapabilities中指定一個瀏覽器。我的節點目前註冊了三種瀏覽器功能(Chrome瀏覽器,Firefox和IE),但集線器必須循環查詢這三個(一路捕捉異常),以確保所有三個瀏覽器同時運行。我希望有一種方式讓集線器說「在任何瀏覽器都可用的節點上運行此測試」,並讓節點選擇任何開放的節點。 – SolsticeShard

相關問題