Comment résoudre le org.openqa.le sélénium.NoSuchElementException
Je suis en train de lancer ce programme:
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;
public class HtmlDriver {
public static void main(String[] args) {
//Create a new instance of the html unit driver
//Notice that the remainder of the code relies on the interface,
//not the implementation.
WebDriver driver = new HtmlUnitDriver();
//And now use this to visit Google
driver.get("http://www.stumbleupon.com/home/");
//Find the text input element by its name
WebElement element = driver.findElement(By.name("q"));
//Enter something to search for
element.sendKeys("Cheese!");
//Now submit the form. WebDriver will find the form for us from the element
element.submit();
//Check the title of the page
System.out.println("Page title is: " + driver.getPageSource());
}
}
Et je suis l'exception suivante:
Exception in thread "main" org.openqa.le sélénium.NoSuchElementException: Impossible de localiser l'élément avec nom: q
Infos système: os.nom: "Linux", os.arc: "i386", os.version: '2.6.27-7-generic", de java.version: '1.6.0_12'
Des informations sur les pilotes: pilote.version: HtmlDriver
au org.openqa.le sélénium.interface htmlunit.HtmlUnitDriver.findElementByName(HtmlUnitDriver.java:651)
au org.openqa.selenium.By$4.findElement(Par.java:148)
au org.openqa.le sélénium.interface htmlunit.HtmlUnitDriver$4.appel(HtmlUnitDriver.java:1133)
au org.openqa.le sélénium.interface htmlunit.HtmlUnitDriver$4.appel(HtmlUnitDriver.java:1)
au org.openqa.le sélénium.interface htmlunit.HtmlUnitDriver.implicitlyWaitFor(HtmlUnitDriver.java:869)
au org.openqa.le sélénium.interface htmlunit.HtmlUnitDriver.findElement(HtmlUnitDriver.java:1130)
au org.openqa.le sélénium.interface htmlunit.HtmlUnitDriver.findElement(HtmlUnitDriver.java:330)
au com.webdrivertest.HtmlDriver.principale(HtmlDriver.java:20)
Merci de m'aider à le résoudre.
Toute une trouvé de réponse à cette question? Je suis googler d'hier, mais pas de celui fourni une solution pour cela. Je me demande est-il une solution pour ce problème?
HtmlUnitDriver est un qui est mauvais dans l'exécution de JS. Si la page web ciblée utilise beaucoup les os JS ou encore AJAX HtmlUnitDriver il n'est pas une option. La grande chose au sujet de sélénium web pilotes, que vous pouvez exécuter le même code avec de vrais navigateurs, comme mentionné dans d'autres réponses...
OriginalL'auteur d5111 | 2011-01-05
Vous devez vous connecter pour publier un commentaire.
Il n'y a aucun élément nom="q" sur cette page, donc, NoSuchElementException. Vous avez pris l'exemple de google et changé le site il va, mais c'est toujours à la recherche d'un champ de recherche google sur la page.
OriginalL'auteur Nick
Quand changer le HtmlUnitDriver à FirefoxDriver, c'est du travail!
OriginalL'auteur erhun
À l'aide de l'exemple du Sélénium site, exactement comme il est, le test échoue avec le même
NoSuchElementException
. Il échoue aussi lorsqu'il est instancié avec émulation de navigateur commeBrowserVersion.FIREFOX_3
.Ne le HtmlUnitDriver travail?
Est-il nécessaire de le configurer, d'une certaine façon en premier?
Mise à jour: je suis assis derrière un proxy et contrairement aux pilotes qui utilisent de vrais navigateurs, ce pilote ne sait pas sur le proxy. Elle doit être configurée manuellement dans le cas de test avec un appel à l':
Je n'ai pas encore trouvé comment le configurer avec le nom d'utilisateur et le mot de passe pour ceux procurations qui nécessitent une authentification.
OriginalL'auteur Alan Escreet
Essayer de définir le
WebDriver
d'utiliser Firefox explicitement:OriginalL'auteur Lutz
Nous ne pouvons pas utiliser la Normale
WebElement
Pour SoumettreAu lieu de cela, vous pouvez essayer
OriginalL'auteur user3487861