0

Selenium webdriverをクライアントで実行したいという状況があります。SeleniumとjavaサーブレットとjavaScript

フォームに送信ボタンがあるウェブページがあります。

フォームのアクション属性で、サーブレットaction="servletName"を呼び出しています。私は、サーバー上で始めるさwebdriverをインスタンスHTMLページ上のボタンをクリックすると、今、サーブレットで、私は

@WebServlet("/servletName") 
public class chckserv extends HttpServlet { 
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException 
{ 
System.setProperty("webdriver.gecko.driver","path//geckodriver.exe"); 
System.out.println("In Servlet"); 
WebDriver driver = new FirefoxDriver(); 
driver.get("https://www.google.com"); 
response.setHeader("Cache-Control", "no-store, no-cache, must-revalidate"); 
response.getOutputStream().write("Done".getBytes("UTF-8")); 
response.getOutputStream().flush(); 
response.getOutputStream().close(); 
} 
} 

次いる

ここで私はしたいと思います。 webdriverインスタンスはクライアント側で実行されている必要があります。

現在のシナリオを念頭に置いて、どのようにしても可能ですか?

答えて

0

webdriverインスタンスはクライアント側で実行されている必要があります。

あなたのサーブレットが実行されているマシンと同じでないリモートマシンを指していると推測しています。

これが正しいとすれば、はい、これは非常にうまくいくでしょう。これを行うには、Selenium Gridを使用する必要があります。

あなたは

RemoteWebDriver driver = new RemoteWebDriver(new URL("http://remoteHostIP:remoteHostPort/wd/hub"), DesiredCapabilities.firefox());

の使用はあなたのwebdriverをインスタンスをインスタンス化するためになるだろう。

Selenium Gridを使用する方法については、以下のドキュメントを参照してください。

+0

グリッドで、私のハブは、(サーブレットを持つ)サーバーとなり、ノードは、クライアント・マシンの右のだろうか...? 次に、クライアントからwebdriverを起動すると、ノード(クライアント)上にないハブでwebdriverが起動します。 **クライアントマシンでグリッドを実行することは許可されていません(クライアントをハブとして作成することはできません)** –

関連する問題