2016-08-17 16 views
5

Webページの特定の要素を強調表示する有効な関数を作成する際に問題があります。注意してください、私は初心者をコーディングしていますが、問題は単純な環境設定の問題か、javascript/selenium機能の主要な知識の欠如かもしれません。Selenium-WebDriver javascriptとfirefoxブラウザを使用して要素を強調する方法

私はEclipse Neonで自分のスクリプトを作成します。環境を設定するために、私はnode.jsとgeckodriverをインストールして、Firefoxブラウザで操作できるようにしました。私のスクリプトの先頭には、次のとおりです。

var webdriver = require('selenium-webdriver'), 
    By = webdriver.By 

var driver = new webdriver.Builder().forBrowser('firefox').build(); 

私はdriver.get();を使用してWebページを開き、私は単純にされたxPath例:

var element = driver.findElement(By.xpath("xPath goes here")); 

使用して要素の場所を定義し、今の質問は何べき、始まります私はWebDriverに、exに対してこの指定された要素を強調表示させるようにします。赤い国境?スタックおよび他の類似のページを閲覧しながら、私が見つけた唯一の答えは、Javaの文法でJavaScriptエグゼキュータを使用してについて何か、または

element.style.backgroundColor = 'red' 

を使用して、いくつかのwebdriverを機能でしたが、私は、コンソールのエラーを取得し、styleまたはいくつかの他の一部が構文は関数ではありません。この時点で、私はこれをどうやって解決するかを解決していないし、html5/javaについての知識がなければこの作業を終えることができることをゆっくりと疑う。おそらく誰もこのような困難に遭遇し、その手がかりを共有するだろうか?

https://jsfiddle.net/osav574j/ < - 私はあなたの完全なコードがどのように見えるかの手がかりを与えるかもしれない私のスクリプトの単純なバージョンを準備しました。ハイライト部分は間違っているかもしれませんが、あなたに見せてもらうことができたと思いますが、それは純粋な仮定です。

乾杯! Perkele

答えて

2

あなたは以下のようにexecuteScript()を使用してみてください: - :「JS」に関連

var element = driver.findElement(By.xpath("xPath goes here")); 
driver.executeScrip‌t("arguments[0].style.backgroundColor = 'red'", element); 
+2

完璧に動作します! driver.executeScript();私が探していたものでした。ありがとうサウラバ! – Perkele

0

これは、要素を強調表示するためのJavaScriptコードです。セレンは、このようなコードを使用しているので、唯一の方法を強調するために任意のネイティブメソッドを持っていない:

ここ
JavascriptExecutor js=(JavascriptExecutor)driver; 
js.executeScript("arguments[0].setAttribute('style,'border: solid 2px red'')", username); 

usernameはwebelementの名前です。

+0

を、私はこのようなソリューション(または類似の)を実装しようとすると、私はエラー「予期しない識別子にSyntaxError」を得ます。たぶん私はいくつかのライブラリが不足している、または私はJavascriptExecutorを使用する前に私のスクリプトでいくつかの重要なことを呼び出すために逃した? – Perkele

+1

JavascriptExecutorはこのパッケージに属します - org.openqa.selenium どの言語でセレンを使用していますか? –

+0

私はJavaScriptで書かれており、Eclipse Neon(JavaScript用にビルド)を使用しています。私は、Javaのためにorg.openqa.seleniumを呼び出すことが必要であることを発見しましたが、JavaScriptでは 'var webdriver = require( 'selenium-webdriver')でアプリケーションコードを開き、 JavascriptExecutorを 'driver.executeScript();'とSauarbh Gaurが示唆しています。 – Perkele

関連する問題