【问题标题】:Appium Android Windows: driver.findElement(By.name(" ")) is not working consecutivelyAppium Android Windows:driver.findElement(By.name(" ")) 不能连续工作
【发布时间】:2014-04-09 01:10:59
【问题描述】:
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();

当我使用上述测试用例时,用户名运行成功,但在输入密码时显示以下错误。

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

为什么 findElement(By.name("")) 第二次不工作了?

【问题讨论】:

    标签: android windows testcase appium


    【解决方案1】:

    使用 Appium Inspector 检查 -> 字段“密码”可能没有任何名称值设置为“密码”来访问它。

    尝试使用 xpath 访问元素,例如:

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

    按照以下步骤使用 Appium Inspector 获取 xpath 或其他属性:

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

    您将看到应用的元素层次结构显示名称、xPath、值等属性。

    【讨论】:

    • “//window[1]/scrollview[1]/secure[1]”这条路径是怎么来的? @Smriti
    • 我在上面编辑了我的评论,并提到了启动 Appium Inspector 和查看属性的步骤。
    • 这是不好的做法,布局中的任何微小变化都会破坏您的测试!使用 className 和 text 在这里提到stackoverflow.com/questions/22142219/…
    猜你喜欢
    • 1970-01-01
    • 2016-11-20
    • 1970-01-01
    • 2014-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-25
    • 1970-01-01
    相关资源
    最近更新 更多