2015-07-03 36 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 .. :)