2016-06-30 12 views
0

Ich möchte auf die Suche klicken Auto vervollständigen BUTTON in einer Webmail-Anwendung.Selen Web-Treiber - Suche nach Klassenname

<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> 

Wenn die BUTTON klicken, bekommen wir diese 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."/> 

ich die folgende Fehlermeldung bekommen beim Versuch, den Klassennamen von dem Eingang zu verwenden.

Wir haben versucht, Selen IDE zu verwenden, um den Wert zu holen, aber wir bekommen nur den xpath. Gibt es eine Möglichkeit, Autocomplete-Suchfeld ohne Verwendung des Xpath zu finden?

Antwort

0

Das ist eine Menge Klassen auf diesem INPUT. :) Ich würde ein anderes Attribut verwenden. Ich würde mit einem von diesen beginnen und sehen, welcher für Sie arbeitet. Sie haben die Sprache, die Sie verwenden, nicht angegeben, daher ist hier ein Code in 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.']")); 

Schnelle Notiz, da Sie nach Klassen gefragt haben. Sie können die Klassenroute wählen und CSS-Selektoren verwenden, um sie zu finden. Ein einfaches Beispiel.

<button class="one two"> 

können Sie die BUTTON oben finden

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

länger verwenden (.) Zeigt eine CSS-Klasse, so dass Sie eine Periode vor jedem Klassennamen benötigen würde. Sie müssen alle die Klassen nicht unbedingt nur einschließen, um das Element eindeutig zu machen, damit Sie es finden können.

CSS Selectors reference

CSS Selectors tips