2016-06-30 7 views
0

ウェブメールアプリケーションで検索オートコンプリートBUTTONをクリックします。 Selenium Webドライバー - クラス名で探す

<button class="_n_r ms-bg-color-themeLight-hover o365button _n_s ms-bg-color-themeLighter ms-font-color-neutralPrimary ms-border-color-themePrimary" type="button" autoid="_n_4" aria-label="Activate Search Textbox"> 
<span class="_n_u owaimg ms-Icon--search ms-icon-font-size-20 ms-fcl-ts-b"/> 
<span class="_n_t ms-font-weight-semilight ms-font-color-neutralPrimary">Search Mail and People</span> 

BUTTONをクリック

は、我々は入力からクラス名を使用しようとしているときに、私は次のエラーを取得しています。この INPUT

<input class="_is_x ms-font-weight-semibold ms-font-color-neutralPrimary ms-bg-color-themeLight ms-bg-color-themeLight-hover allowTextSelection textbox ms-font-s ms-fwt-sl ms-fcl-np ms-bcl-nta ms-bcl-nsa-h hideClearButton" autoid="_is_3" role="combobox" aria-autocomplete="list" aria-label="Search mail and people, type your search term then press enter to search."/> 

を取得します。

"The given selector _n_r ms-bg-color-themeLight-hover o365button _n_sms-bg-color-themeLighter ms-border-color-themeLighter is either invalid or does not result in a WebElement. The following error occurred: InvalidSelectorError: Compound class names not permitted"

セレンIDEを使用して値を取得しようとしましたが、xpathだけが取得されています。 xpathを使ってオートコンプリート検索フィールドを見つける方法はありますか?

答えて

0

これは、その数が多いINPUTです。 :)私は別の属性を使用します。私はこれらのうちの1つから始め、どちらがあなたのために働くかを見ていきます。あなたが使用している言語を指定していないので、ここにJavaのコードがあります。

driver.findElement(By.cssSelector("input[autoid='_is_3']")); 
driver.findElement(By.cssSelector("input[aria-label='Search mail and people, type your search term then press enter to search.']")); 

あなたはクラスについて質問していたので簡単にメモします。クラスのルートに行き、CSSセレクタを使って見つけることができます。簡単な例。

<button class="one two"> 

あなたは

driver.findElement(By.cssSelector("button.one.two")); 

期間を使用して、上記BUTTONを見つけることができます(。)を使用すると、各クラス名の前にピリオドが必要になりますので、CSSクラスを示します。 すべてのクラスを必ずしも含める必要はなく、要素をユニークにして見つけることができます。

CSS Selectors reference

CSS Selectors tips

関連する問題