WebView 中 Android 的 Appium 上的 id 除外,定位器无法正常工作
Locator is not working except id on the Appium for Android in WebView
正在尝试测试 Android 在 WebView 中编码的应用程序。我有一个正在尝试自动化测试用例的应用程序。
我有一个包含电子邮件和密码的登录屏幕,其中确实有 ID 定位器。这工作正常我能够找到元素。用 ionic 制作的 ITs 混合应用程序。登录按钮没有 ID 定位器。
到目前为止我已经尝试过这个东西。
MobileWebBrowserFactory factory;
AndroidDriver<WebElement> appiumdriver;
WebElement LoginElement = appiumdriver.findElement(By.id("username"));
LoginElement.click();
LoginElement.sendKeys("Test");
WebElement PasswordElement = appiumdriver.findElement(By.id("password"));
PasswordElement.click();
PasswordElement.sendKeys("Test");
// Hide Keyboard
appiumdriver.hideKeyboard();
Thread.sleep(2000);
WebElement LoginButton = appiumdriver
.findElementByName("end");
它给了我一个例外,即不允许定位器始终找到名称。 Android 和 appium 驱动我都用过。
任何人都可以向我推荐好的图书馆吗?感谢您的提前帮助。
谢谢
我很长时间没有使用 Appium,所以也许我错了,但我记得,Appium 仅支持通过 id
或 xpath
定位元素。
所以,而不是 findElementByName
尝试 findElementByXpath
.
定位器应该相应地改变,所以它会像
WebElement LoginButton = appiumdriver.findElementByXpath("//*[@name='end']");
我对代码做了一些修改。
将 Appium 服务器从 1.10 更改为 1.20.2。
使用 Android 个驱动程序实例。
此外,为非离子框架使用了 Xpath。
它解决了我的问题,我可以使用它找到元素。
WebElement UsernameElement = appiumdriver.findElementByXPath("//*[@id=\"username\"]/input");
Thread.sleep(1000);
UsernameElement.click();
Thread.sleep(1000);
UsernameElement.sendKeys("mobile3@20212.com");
可能旧 Appium 无法识别该元素。
正在尝试测试 Android 在 WebView 中编码的应用程序。我有一个正在尝试自动化测试用例的应用程序。
我有一个包含电子邮件和密码的登录屏幕,其中确实有 ID 定位器。这工作正常我能够找到元素。用 ionic 制作的 ITs 混合应用程序。登录按钮没有 ID 定位器。
到目前为止我已经尝试过这个东西。
MobileWebBrowserFactory factory;
AndroidDriver<WebElement> appiumdriver;
WebElement LoginElement = appiumdriver.findElement(By.id("username"));
LoginElement.click();
LoginElement.sendKeys("Test");
WebElement PasswordElement = appiumdriver.findElement(By.id("password"));
PasswordElement.click();
PasswordElement.sendKeys("Test");
// Hide Keyboard
appiumdriver.hideKeyboard();
Thread.sleep(2000);
WebElement LoginButton = appiumdriver
.findElementByName("end");
它给了我一个例外,即不允许定位器始终找到名称。 Android 和 appium 驱动我都用过。
任何人都可以向我推荐好的图书馆吗?感谢您的提前帮助。
谢谢
我很长时间没有使用 Appium,所以也许我错了,但我记得,Appium 仅支持通过 id
或 xpath
定位元素。
所以,而不是 findElementByName
尝试 findElementByXpath
.
定位器应该相应地改变,所以它会像
WebElement LoginButton = appiumdriver.findElementByXpath("//*[@name='end']");
我对代码做了一些修改。
将 Appium 服务器从 1.10 更改为 1.20.2。 使用 Android 个驱动程序实例。
此外,为非离子框架使用了 Xpath。
它解决了我的问题,我可以使用它找到元素。
WebElement UsernameElement = appiumdriver.findElementByXPath("//*[@id=\"username\"]/input");
Thread.sleep(1000);
UsernameElement.click();
Thread.sleep(1000);
UsernameElement.sendKeys("mobile3@20212.com");
可能旧 Appium 无法识别该元素。