2
WebElement username=driver.findElement(By.name("username"));
username.sendKeys("test");
WebElement password=driver.findElement(By.name("password"));         
password.sendKeys("test");
WebElement loginBtn=driver.findElement(By.name("Login"));
loginBtn.click();       
WebElement backBtn=driver.findElement(By.tagName("Button"));
backBtn.click();

when i am using the above testcase, username is running successfully but when going to password it showing following error.

debug: Appium request initiated at /wd/hub/session/71ed55ce-c3ae-46d8-9ce7-67452
0992c0a/element/1/value
debug: Request received with params: {"id":"1","value":["test"]}
info: Pushing command to appium work queue: ["element:setText",{"elementId":"1",
"text":"test"}]
info: [BOOTSTRAP] [info] Got data from client: {"cmd":"action","action":"element
:setText","params":{"elementId":"1","text":"test"}}
info: [BOOTSTRAP] [info] Got command of type ACTION
info: [BOOTSTRAP] [debug] Got command action: setText
info: [BOOTSTRAP] [info] Returning result: {"value":true,"status":0}
info: Responding to client with success: {"status":0,"value":true,"sessionId":"7
1ed55ce-c3ae-46d8-9ce7-674520992c0a"}
POST /wd/hub/session/71ed55ce-c3ae-46d8-9ce7-674520992c0a/element/1/value 200 26
53ms - 89b
debug: Appium request initiated at /wd/hub/session/71ed55ce-c3ae-46d8-9ce7-67452
0992c0a/element
debug: Request received with params: {"using":"name","value":"password"}
info: Pushing command to appium work queue: ["find",{"strategy":"name","selector
":"password","context":"","multiple":false}]
info: [BOOTSTRAP] [info] Got data from client: {"cmd":"action","action":"find","
params":{"strategy":"name","selector":"password","context":"","multiple":false}}

info: [BOOTSTRAP] [info] Got command of type ACTION
info: [BOOTSTRAP] [debug] Got command action: find
info: [BOOTSTRAP] [debug] Finding password using NAME with the contextId:
info: [BOOTSTRAP] [info] Returning result: {"value":"No element found","status":
7}
info: Responding to client with error: {"status":7,"value":{"message":"An elemen
t could not be located on the page using the given search parameters.","origValu
e":"No element found"},"sessionId":"71ed55ce-c3ae-46d8-9ce7-674520992c0a"}
POST /wd/hub/session/71ed55ce-c3ae-46d8-9ce7-674520992c0a/element 500 783ms - 22
3b

Why findElement(By.name("")) is not working for second time?

T B
  • 191
  • 4
  • 22

1 Answers1

0

Check using Appium Inspector -> the field 'password' might not have any name value set as "password" to access it.

Try accessing element using xpath instead like :

  WebElement password = driver.findElement(By.xpath("//window[1]/scrollview[1]/secure[1]"));
  password.click();
  password.sendKeys("psswrd");

Follow following steps to get xpath or other attributes using Appium Inspector :

[1] Launch Appium server.
[2] Check the check box 'App Path'.
[3] Click on the 'Choose' button and select your .app file location from your local, e.g. xyz.app
[4] Now click on the 'Launch' button . Once appium server is launched, the blue color icon besides the 'Launch' button is enabled.
[5] Click on the blue color icon, it will open up the appium inspector and simulator with your application :

enter image description here

You will see the element hierarchy of your app displaying attributes like name , xPath , value etc.

Smriti
  • 1,552
  • 3
  • 15
  • 29
  • how "//window[1]/scrollview[1]/secure[1]" this path comes ? @Smriti – T B Mar 11 '14 at 12:26
  • I have edited my comment above and mentioned steps to launch Appium Inspector and view attributes. – Smriti Mar 11 '14 at 17:40
  • This is bad practice, any small change in the layout will break your test ! use className and text as mention here http://stackoverflow.com/questions/22142219/can-we-find-element-by-id-in-appium – Shirane85 Nov 10 '14 at 16:59