我尝试使用appium自动化混合应用程序。我使用Ionic Framework开发了我的应用程序。我已经完成了整个设置准备就绪。然后我试图在Mozilla.i中找到使用firebug检查的元素,发现特定按钮的xpath为//Button[text()='BROWSE MENU']
。
但是当我尝试使用appium进行测试时,它无法找到它,我的测试失败了。
driver.findElement(By.xpath("//button[text()='BROWSE MENU']")).click();
FAILED: Loginforsample
org.openqa.selenium.NoSuchElementException: An element could not be located on the page using the given search parameters. (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 5.13 seconds
For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html
我不知道到底哪里出错了。最初我尝试用WEB_VIEW检查铬,然后我注意到离子具有使用离子服务直接检查的优势。所以我只是转移到那里,我又在这里得到了结构。请帮我们解决这个问题。
提前谢谢。答案 0 :(得分:2)
尝试将Explicit wait
添加到您的代码中:
//driver.switchTo().frame("put_iframe_id_or_name_here"); //to switch to iframe
WebDriverWait wait = new WebDriverWait(driver, 30);
WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//button[text()='BROWSE MENU']")));
element.click();
//driver.switchTo().defaultContent(); //to switch back if required
答案 1 :(得分:2)
我用这个问题所以我使用cssSelector
这是测试混合应用的好方法!
答案 2 :(得分:1)
在您对此按钮执行操作之前,尝试应用10秒等待[Thread.sleep(10000);]。 如果它工作,那么很好,否则将定位器更改为cssSelector。