首页 > 解决方案 > Appium:无法通过 ID 和名称在 Android chrome 浏览器中找到元素,得到“InvalidArgumentException”

问题描述

我正在使用 Appium (v1.15.1) 在 Android 设备上使用 Chrome 浏览器从“ http://facebook.com ”查找电子邮件密码字段,我无法使用方法 findElementById(' ') 和 findElementByName('')。我尝试使用 XPath 找到它并且它有效。

这是我的代码:

public class Browse extends BaseMobile {

       public static void main(String[] args) throws MalformedURLException {
           AndroidDriver<AndroidElement> driver = capabilities();
           driver.get("http://facebook.com");
           driver.findElementById("m_login_email").sendKeys("prueba@mail.com"); //  not working 
           driver.findElementByName("pass").sendKeys("123456789"); //  not working
           driver.findElementByXPath("//*[@name='login']").click(); 
       }
}

能力:

public class BaseMobile {

       public static AndroidDriver<AndroidElement> capabilities() throws MalformedURLException {

           AndroidDriver<AndroidElement> androidDriver;
           String serverUrl = "http://127.0.0.1:4723/wd/hub";
           DesiredCapabilities cap = new DesiredCapabilities();
           cap.setCapability(MobileCapabilityType.DEVICE_NAME, "Android device");
           cap.setCapability(MobileCapabilityType.BROWSER_NAME, "Chrome");
           androidDriver = new AndroidDriver<AndroidElement>(new URL(serverUrl), cap);
           androidDriver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS);
          return androidDriver;
       }
}

错误:

线程“主”org.openqa.selenium.InvalidArgumentException 中的异常:无效参数:无效定位器(会话信息:chrome=79.0.3945.136)

编辑(1):正如我所建议的那样,我打印了页面源,我得到它没有任何问题。也添加了 appium 日志。

控制台日志:System.out.println(driver.getPageSource());

Appium日志

标签: browserselenium-chromedriverappiuminvalid-argumentdesiredcapabilities

解决方案


之后 driver.get(" http://facebook.com "); 行尝试打印页面源并查看它是否正在获取页面源。试试 System.out.println(driver.getPagesource());


推荐阅读