在appium 1.7.for ios中,如果两个文本字段具有相同的类名,如何编写xpath

在appium 1.7.for ios中,如果两个文本字段具有相同的类名,如何编写xpath,appium,Appium,有人能帮我在appium 1.7中为iOS编写xpath吗 如果两个类具有相同的名称 driver.findElementByClassName("TextField").sendKeys("abc"); driver.findElementByClassName("TextField").sendKeys("1234"); 在任何情况下,使用className都不是可靠的搜索策略,因为它不是唯一的 我通常建议以下规则: 为自动化测试中使用的大多数元素提供唯一的AccessibilityId

有人能帮我在appium 1.7中为iOS编写xpath吗

如果两个类具有相同的名称

driver.findElementByClassName("TextField").sendKeys("abc");
driver.findElementByClassName("TextField").sendKeys("1234");

在任何情况下,使用
className
都不是可靠的搜索策略,因为它不是唯一的

我通常建议以下规则:

  • 为自动化测试中使用的大多数元素提供唯一的
    AccessibilityId
    (如果开发人员同意解决此问题,请与他们交谈)
  • 如果不是,则构建唯一的
    Xpath
    ,与具有
    AccessibilityId
    或更唯一的
    className
作为临时解决方案,您可以执行以下操作:

List<WebElement> textfields = driver.findElementsByClassName("TextField");
textFields.get(0).sendKeys("abc");
textFields.get(1).sendKeys("1234");

下面的代码对我来说很好


driver.findElementByName(“没有帐户?注册”)。单击(); driver.findElementByClassName(“TextField”).sendKeys(“abc”);driver.findElementByClassName(“SecureTextField”).sendKeys(“12345”);driver.findElementByClassName(“SecureTextField”).sendKeys(Keys.ENTER); driver.findelementbypath(“(//xguielementtypesecuretextfield[2]”)。sendKeys(“12345”); driver.findelementbypath(“(//xguielementtypetextfield)[2]”); driver.findelementbypath((//xguielementtypetextfield)[2]”).sendKeys(“9876543210”)


List<WebElement> textfields = driver.findElementsByXpath(<your xpath>);