Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法使用Selendroid和CSharp与web元素交互_C#_Android_Selenium_Selenium Webdriver_Selendroid - Fatal编程技术网

C# 无法使用Selendroid和CSharp与web元素交互

C# 无法使用Selendroid和CSharp与web元素交互,c#,android,selenium,selenium-webdriver,selendroid,C#,Android,Selenium,Selenium Webdriver,Selendroid,我目前正在使用SeleniumWebDriver和带有xUnit断言库的C编写自动化UI测试。最近,我开始着手研究Android设备的自动化,并以文档为起点 这是我目前拥有的 一个物理的安卓设备。Nexus 7 截至2015年4月28日的最新Android SDK和所有更新 截至2015年4月28日的最新Java JDK 直到2015年4月27日,一切正常。 现在,每当我运行一个测试时,它都会进入对页面上的元素实际执行操作的步骤,并失败 测试示例如下: [Fact(DisplayName = "

我目前正在使用SeleniumWebDriver和带有xUnit断言库的C编写自动化UI测试。最近,我开始着手研究Android设备的自动化,并以文档为起点

这是我目前拥有的

一个物理的安卓设备。Nexus 7 截至2015年4月28日的最新Android SDK和所有更新 截至2015年4月28日的最新Java JDK 直到2015年4月27日,一切正常。 现在,每当我运行一个测试时,它都会进入对页面上的元素实际执行操作的步骤,并失败

测试示例如下:

[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 Studio对其进行调试,我可以看到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交互的元素是什么类型,也不管我如何通过.ID、By.CssSelector、By.Name找到它,它都会不断返回相同的错误。在这一点上,我被卡住了。我对编写自动化测试和C相当陌生,而且是我团队中唯一一个用Selendroid测试水域的人


提前感谢您的时间和投入

远离谷歌可能会让你的生活变得更轻松。这不再是一个问题,我离开了Selendroid,转而选择了Appium,一切都恢复正常。