2017-04-25 1 views
-3

Ich benutze Java und Firefox für die Automatisierung. ich habe die folgende Tabelle:Selen: find input Element finden in Tabelle

<table width="200" border="0"> 
    <tbody> 
     <tr> 
     <td align="LEFT">User-ID: </td> 
     <td> 
     **<input name="username" size="25"/>** 
     </td> 
    </tr> 
     <tr> 
     <td align="LEFT">Password: </td> 
     <td> 
     **<input name="password" size="25" type="PASSWORD"/>** 
     </td> 
    </tr> 
</tbody> 
</table> 

Ich brauche den „Input Name“ und „Passwort eingeben“, um die Eingabe meiner Zugangsdaten zu erreichen. Ich habe die folgenden Befehle versucht:

driver.findElement(By.xpath("html/body/div[7]/div[2]/form[2]/fieldset/table[1]/tbody/tr[1]/td[2]/input")).sendKeys("XXXXX"); 
driver.findElement(By.xpath("*//table//tbody//tr//td[2]/input/@name")).sendKeys("XXXXXXX"); 

In beiden Fällen eclipse nichts gefunden.

Kann mir jemand mit dem richtigen xPath assistieren?

Die Fehler Massage in Eclipse ist die folgende:

Exception in thread "main" org.openqa.selenium.InvalidArgumentException: Expected [object Undefined] undefined to be a string 
+0

Was ist, wenn Sie 'xpath' als' .// input [@ name = 'password'] verwenden ' –

+0

Was' Fehler'? Bitte addiere –

Antwort

1

Versuchen Sie dies unter codexpath locator

driver.findElement(By.xpath("//input[@name='username']")).sendKeys("Username"); 
driver.findElement(By.xpath("//input[@name='password']")).sendKeys("XXXXXX"); 

Erklärung der XPath: - Verwenden name Attribut <input> Tag.

Hinweis: - Anstatt absolute xpath zu verwenden, verwenden Sie relative xpath.

ODER

die Sie interessieren unter code mit cssSelector

driver.findElement(By.cssSelector("input[name='username']")).sendKeys("Username"); 
driver.findElement(By.cssSelector("input[name='password']")).sendKeys("XXXXXX"); 
+0

Haben Sie diesen Code versucht? –

+0

Die beiden Optionen funktionieren nicht für mich. –

+0

Können Sie uns bitte Ihren vollen Code zeigen?weil der gleiche Code für mich funktioniert, ohne einen Fehler anzuzeigen. –

1

in Ihrem HTML-Suche DOM dieser Befehl für Sie arbeiten:

Sie können den "Namen" Locator als verwenden:

driver.findElement(By.name("username")).sendKeys("your_username"); driver.findElement(By.name("password")).sendKeys("your_password");

OR

Sie können die "XPath" Locator als verwenden:

driver.findElement(By.xpath("//input[@name='username']")).sendKeys("your_username"); driver.findElement(By.xpath("//input[@name='password']")).sendKeys("your_password");

Lassen Sie mich wissen, ob es für Sie arbeitet.

+0

Dev 'xpath' und' name' sind kein Attribut, beide sind unterschiedliche Locators. –

+0

@JainishKapadia Danke, Sie haben Recht, Korrektur gemacht. – DebanjanB

1

Ich fand heraus, warum Ihre Antworten nicht funktionieren. Der Fehler, den ich bekomme, ist ein tatsächliches Problem mit Firefox. Bitte beziehen Sie sich auf diesen Link: https://bugzilla.mozilla.org/show_bug.cgi?id=1357661

Vielen Dank an alle, die versucht haben, mir zu helfen.

+0

In Ordnung, Danke für die Erlaubnis uns :) –

+0

So haben Sie ein Problem mit Selen/GitHub oder Gecko/GitHub? Wie ist der Status jetzt? – DebanjanB

+0

Bitte verwenden Sie den folgenden Link für weitere Informationen: https: //bugzilla.mozilla.org/show_bug.cgi? Id = 1357661. Inzwischen benutze ich IE für meine Schweinswale. –