Невозможно взаимодействовать с веб-элементом, используя Selendroid и CSharp
В настоящее время я пишу автоматизированные тесты пользовательского интерфейса с использованием Selenium Webdriver и C# с библиотекой утверждений xUnit. Недавно я начал заниматься автоматизацией Android-устройств с помощью Selendroid и документацией для начала.
Вот что у меня сейчас
- Физическое устройство Android. Нексус 7
- Последний Android SDK и все обновления от 28.04.2015
- Последняя версия Java JDK от 28.04.2015
Все работало просто отлично до 27.04.2015. Теперь, когда я запускаю тест, он переходит к действительному выполнению действия с элементом на странице и завершается ошибкой.
Пример теста:
[Fact(DisplayName = "Android Tablet Test _ 01")]
public void AndroidTest01()
{
Driver.Navigate().GoToUrl("http://www.google.com");
var google_text_box = Driver.FindElement(By.CssSelector("input#lst-ib"));
google_text_box.Click();
}
Используя Microsoft Visual Studios для отладки, я вижу, что google_text_box объявлен и настроен очень хорошо, но когда я с ним взаимодействую, он умирает. Просмотр свойств google_text_box после того, как он установлен, показывает, что.Selected бросило ниже исключение, которое затем предотвращает дальнейшие взаимодействия.
CATCH_ALL: io.selendroid.server.common.exceptions.SelendroidException: {"message":"Element is not selectable"}
at io.selendroid.server.model.SelendroidWebDriver.executeAtom(SelendroidWebDriver.java:211)
at io.selendroid.server.model.SelendroidWebDriver.executeAtom(SelendroidWebDriver.java:179)
at io.selendroid.server.model.AndroidWebElement.isSelected(AndroidWebElement.java:150)
at io.selendroid.server.handler.GetElementSelected.safeHandle(GetElementSelected.java:37)
at io.selendroid.server.handler.SafeRequestHandler.handle(SafeRequestHandler.java:87)
at io.selendroid.server.AndroidServlet.handleRequest(AndroidServlet.java:264)
at io.selendroid.server.common.BaseServlet.handleHttpRequest(BaseServlet.java:67)
at io.selendroid.server.common.http.ServerHandler.channelRead(ServerHandler.java:53)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319)
at io.netty.handler.traffic.AbstractTrafficShapingHandler.channelRead(AbstractTrafficShapingHandler.java:223)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319)
at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319)
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:163)
at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:148)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319)
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:787)
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:125)
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:511)
at io.netty.channel.nio.NioEventLoop.processSelectedKeysPlain(NioEventLoop.java:430)
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:384)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:354)
at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:116)
at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:137)
at java.lang.Thread.run(Thread.java:818)
Когда тест завершен, работает верхний стек:
at OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse)
at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters)
at OpenQA.Selenium.Remote.RemoteWebDriver.InternalExecute(String driverCommandToExecute, Dictionary`2 parameters)
at OpenQA.Selenium.Remote.RemoteWebElement.Execute(String commandToExecute, Dictionary`2 parameters)
at OpenQA.Selenium.Remote.RemoteWebElement.get_Selected()
Неважно, с каким элементом я пытаюсь взаимодействовать (input, div, select) или как я нахожу его (By.ID, By.CssSelector, By.Name), он продолжает возвращать ту же ошибку. На данный момент я застрял. Я довольно новичок в написании автоматических тестов и C#, и единственный в моей команде, который тестирует воды с помощью Selendroid.
Заранее спасибо за ваше время и вклад!