2011-09-19 15 views
13

この質問はjqueryですばらしい回答を得ました。誰かがJavaでthisの例を与えることができるかどうか疑問に思っていましたか?Javaを使用したスペースを持つwebdriverクラス名

私はdriver.findElement(By.className("current time")).click();スペースが問題で、リンクに説明がありますが、それをJavaで処理する方法がわかりませんし、クラス名を変更するアクセス権もありません。

firefox inspect idの取得例を貼り付けます。以下のcssSelectorの例は機能しませんでしたが、何か不足している可能性があります。

+7

'class ="現在の時間 "は、** 2つの**クラスを持つ要素を宣言します:' current'と 'time'。これは単なるクラス「現在の時間」ではありません。 –

+0

@JoachimSauer初心者のための素晴らしい情報です – rakeshNS

答えて

38

cssセレクタを使用できます。あなたはクラス '現在の時間'のためのタグマメを言及していません。私は編集#1提供されたHTMLに基づいて

WebElement element = driver.findElement(By.cssSelector("input[class='current time']")); 
element.click(); 

はあなたのコメントにHTMLを見ると、あなたのCSSセレクタの作業が可能ので、それは、入力すると仮定しています、あなたが非常に持っているようですwebElementを見つけるためのオプションはほとんどありません。ここにあなたのオプションは、要素がリンクであるので、あなたはまた、linkTextを使用することができます

WebElement element = driver.findElement(By.cssSelector("a.current.time")); 
element.click(); 

WebElement element = driver.findElement(By.cssSelector("a[class='current time']")); 
element.click(); 

か、これはあまりにも動作するはずです。

WebElement element = driver.findElement(By.xpath("//a[@class='current time']")); 
element.click(); 

OR、

WebElement element = driver.findElement(By.xpath("//a[text() = 'url']")); 
element.click(); 
:あなたが提供するHTMLからの、リンクテキストは、 'URL'

WebElement element = driver.findElement(By.linkText("url")); 
element.click(); 

ですまた、あなたはまた、としてXPathを使用することができますBy.partialLinkText("partial link text here");

を使用することができます

+0

こんにちは、助けてくれてありがとう。それは私のために働かなかった、私はクリックしようとしている作品を貼り付けます。これは、クラス名が1つの単語である場合に機能しますが、以下の例のように2つの単語になります。私はcssSelectorを試しましたが、私はこれを初めて知っていて、簡単に何か不足する可能性があります。 url Green

+1

私が提供したHTMLに基づいて回答を更新しました。試してみてください。 – nilesh

+0

助けてくれてありがとう。私は回避しようとしていたlinktextを使用しなければならなかった、私はこれに新しいので、現在他の例がうまくいかなかった理由を言うことができませんでした。 – Green

2

脆弱なテストでは、クラスの順序に依存しないXPATHを使用する方法もあります。 :

0

クラス名にスペースがある場合は、いつでもcssSelector Locatorに切り替える必要があります。

以下のようなスペースがある場合、クラス名をcssSelectorに変換します。あなたのケースでは

WebElement element = driver.findElement(By.cssSelector(".current.time']")); 
element.click(); 

PS:を追加します。 [dot]をクラス名の先頭に置き、スペースをに置き換えてください。 [dot]は、クラス名をcssSelectorに変換します。

関連する問題