2017-12-03 16 views
0

javascriptexecutorを使用してクリックを実行したい。Safari Webdriverを実行中にJavascriptexecutorが機能しない

JavasciptExecutor jse=(JavascriptExecutor) webDriver; 
jse.executescript("arguments[0].click();",webelement) 

サファリから実行しているが、それはクロムドライバで細かい「undefined is not a function<evaluating arguments[0].click」 同じ作品を見せています。

webDriverの起動中に機能を追加する必要がありますか? 私はすでにcapabilities.SetJavascriptEnabled(true)を追加しています。それでも動作しません。

+0

WebElementの取得方法など、サイトといくつかの追加コードを提供できますか? – Marcel

答えて

0

ブラウザの機能をブラウザで設定する必要があります。

Safariブラウザでテストケースを実行すると、ブラウザにグローバルフラグが設定されます。 SafariやChromeで実行するときに、設定ファイルを作成して「safari」や「chrome」を追加することができます。あなたのソースで

は、以下のようなサファリのために、あなたのドライバを初期化します。

if (browser.equals("safari")) { 
     SafariOptions safariOptions = new SafariOptions(); 
     safariOptions.setUseCleanSession(true); 
     safariOptions.setUseTechnologyPreview(true); 
     driver = new SafariDriver(safariOptions); 

    } 

次に、あなたの目的のURLに移動します。ここで私はあなたの理解のためのサンプルソースを追加しています。

driver.get("https://www.google.com"); 

WebElement elem = driver.findElement(By.className("gb_P")); 
jse = (JavascriptExecutor)driver; 
jse.executeScript("arguments[0].click();", elem); 

これで問題が解決します。詳細については、ここでコメントしてください。

関連する問題