我是C#的新手,但是在Appium上有很好的经验。 对于有问题的屏幕,有一个编辑字段“请输入您的应用代码”。 Appium桌面可轻松识别带有“ id”的元素。识别后,我试图单击并必须输入appcode的值。出乎意料的是,在Java中,此元素很容易用'Id'标识。
我尝试过使用'FindElementById','FindElementByAccessibilityId'和'FindElementByXPath',但是它们都不起作用。 我还尝试了显式等待。
IWebElement Appcode = driver.FindElementByAccessibilityId("com.abc.dbanking:id/appcode_tie");
或
IWebElement Appcode = driver.FindElementById("com.abc.dbanking:id/appcode_tie");
或
IWebElement Appcode = driver.FindElementByXPath("//android.widget.EditText(@resource-id = 'com.abc.dbanking:id/appcode_tie'));
或
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(45));
IWebElement Appcode = wait.Until(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementToBeClickable(By.Id("com.abc.dbanking:id/appcode_tie")));
但是每次我遇到'NoSuchElementException'时,驱动程序都无法在页面上找到该元素。
答案 0 :(得分:1)
尝试 IWebElement元素= driver.FindElementById(“ appcode_tie”); 要么 IWebElement元素= driver.FindElementByXPath(“ // * [包含(@ resource-id,'appcode_tie')]”);