2015-07-03 38 views
0

我有一個java web應用程序,其中我已經集成了一些基本上做以下工作的硒代碼: 我有一個用戶名和密碼的登錄頁面,所以一旦我填寫詳細信息並單擊登錄按鈕,它會調用selenium代碼(通過servlet的java方法),該代碼打開另一個選項卡並在其登錄頁面填充URL和相同的詳細信息。 這對一個system.but可以正常工作,但我必須在tomcat中部署.war文件,以便這應該適用於所有用戶以相同的方式,但是當我從遠程系統訪問URL並登錄時,它打開瀏覽器在我的Apache運行的服務器上。與tomcat的硒webdriver

所以我的問題是我怎麼能做到這一點?如果任何用戶訪問我的URL並登錄,它應該在他的系統中打開另一個選項卡,而不是在服務器上。

我已經嘗試過使用grid2,在遠程系統上的服務器和節點上創建了一個集線器,但仍然運行我的應用程序時,它會在服務器中打開瀏覽器。 我不知道我怎麼能做到這一點。

有一個鏈接,我發現它使用Java腳本在Chrome中的node.js

[http://aboutcode.net/2013/12/02/automating-chrome-on-windows-with-javascript-using-selenium-webdriverjs.html][1]

我怎樣才能在Java執行硒Java腳本代碼。

任何幫助將非常感謝你。

+0

請提供您的腳本的一小段代碼片段。可能是您使用網格並將您的PC註冊到網格中。 –

+0

這是你在找什麼:http://stackoverflow.com/questions/31147889/how-to-run-a-selenium-test-from-remote-computers/31153053#31153053 – Manu

+0

@Manu是看起來像是一樣,所以它可能如你所說,如果任何客戶端訪問我的URL形式的任何機器測試將開始在他的機器,而不是服務器機器..我是全新的硒..小我嘗試你的步驟..我會回來的代碼片段...非常感謝你馬努.. – Zee

回答

0

這聽起來像是一個嚴重濫用硒測試框架&我敦促你重新考慮你的方法。你可以實現你從你的應用程序中要使用JavaScript的一切,通過查詢字符串到新窗口傳遞變量見JavaScript: location.href to open in new window/tab?

0

最後能夠解決併網問題2

String nodeUrl = "http://"+ip+":5560/wd/hub"; 

    DesiredCapabilities capability = DesiredCapabilities.internetExplorer(); 
    driver = new RemoteWebDriver(new URL(nodeUrl),capability); 
    driver.manage().window().maximize(); 
    driver.manage().timeouts().implicitlyWait(2, TimeUnit.MINUTES); 

要在打開瀏覽器客戶端,我們需要將該客戶端的IP從javascript傳遞給服務器。 在執行代碼之前,驅動程序和硒應該被註冊運行。

特別感謝Manu .. :)