异常:使用 Appium 中给定的搜索参数无法在页面上定位元素
Exception: An element could not be located on the page using the given search parameters in Appium
尝试在 Browserstack-cloud 中的 iPad-emulator 上自动化测试。我尝试过的许多定位器策略都因以下异常而中断:
Exception: An element could not be located on the page using the given search parameters
因为我尝试了很多变体,所以我很确定我的错误是一个普遍的错误 - 但我找不到它。我的 C# 代码:
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.SetCapability("device", "iPad Air 2");
capabilities.SetCapability("browserstack.user", browserStackUser);
capabilities.SetCapability("browserstack.key", browserStackKey);
capabilities.SetCapability("name", "ios - actions");
Uri serverUri = new Uri("http://hub.browserstack.com/wd/hub/");
AppiumDriver<IWebElement> driver = new IOSDriver<IWebElement>(serverUri, capabilities, new TimeSpan(1000000000000));
driver.Navigate().GoToUrl("http://www.amazon.de");
driver.Context = "NATIVE_APP";
Thread.Sleep(20000);
IWebElement anyElement = driver.FindElementByName("field-keywords");
这种方法的一般错误是什么?
这是我尝试定位的元素:
能否请您post截图,以便我可以给您使用的定位策略。此外,您可以使用 get API 而不是 GoToUrl。下面的代码在 java 中。
driver.get(""http://www.amazon.de");
WebDriverWait wait = new WebDriverWait(driver, 30);
wait.until(ExpectedConditions.presenceOfElementLocated(BY-LOCATOR-STRATEGY-HERE)); //wait for page to load before finding any element
WebElement element = driver.findElement(BY-LOCATOR-STRATEGY-HERE);
尝试在 Browserstack-cloud 中的 iPad-emulator 上自动化测试。我尝试过的许多定位器策略都因以下异常而中断:
Exception: An element could not be located on the page using the given search parameters
因为我尝试了很多变体,所以我很确定我的错误是一个普遍的错误 - 但我找不到它。我的 C# 代码:
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.SetCapability("device", "iPad Air 2");
capabilities.SetCapability("browserstack.user", browserStackUser);
capabilities.SetCapability("browserstack.key", browserStackKey);
capabilities.SetCapability("name", "ios - actions");
Uri serverUri = new Uri("http://hub.browserstack.com/wd/hub/");
AppiumDriver<IWebElement> driver = new IOSDriver<IWebElement>(serverUri, capabilities, new TimeSpan(1000000000000));
driver.Navigate().GoToUrl("http://www.amazon.de");
driver.Context = "NATIVE_APP";
Thread.Sleep(20000);
IWebElement anyElement = driver.FindElementByName("field-keywords");
这种方法的一般错误是什么?
这是我尝试定位的元素:
能否请您post截图,以便我可以给您使用的定位策略。此外,您可以使用 get API 而不是 GoToUrl。下面的代码在 java 中。
driver.get(""http://www.amazon.de");
WebDriverWait wait = new WebDriverWait(driver, 30);
wait.until(ExpectedConditions.presenceOfElementLocated(BY-LOCATOR-STRATEGY-HERE)); //wait for page to load before finding any element
WebElement element = driver.findElement(BY-LOCATOR-STRATEGY-HERE);