2017-02-16 138 views
0

我正在写一些java代码使用java - appium的客户端。我成功进入了输入文本的页面,但是,进入页面后,输入字段没有响应。appium 1.6 sendKeys到EditText失败

这里的结构:

<?xml version="1.0" encoding="UTF-8"?> 
<hierarchy rotation="0"> 
    <android.widget.FrameLayout index="0" text="" class="android.widget.FrameLayout" ]" resource-id="" instance="0"> 
     <android.widget.LinearLayout index="0" text="" class="android.widget.LinearLayout" ]" resource-id="" instance="0"> 
      <android.widget.FrameLayout index="0" text="" class="android.widget.FrameLayout" 4]" resource-id="android:id/content" instance="1"> 
       <android.webkit.WebView index="0" text="" class="android.webkit.WebView" 4]" resource-id="" instance="0"> 
        <android.webkit.WebView index="0" text="" class="android.webkit.WebView" content-desc="Home" focused="true" scrollable="true" 4]" resource-id="" instance="1"> 
         <android.widget.Button index="0" text="" class="android.widget.Button" content-desc="纬 " checkable="false" checked="false" clickable="true" " resource-id="" instance="0"/> 
        <android.view.View index="1" text="" class="android.view.View" content-desc="Sign Up Page" checkable="false" checked="false" clickable="true" 36]" resource-id="" instance="0"/> 
       <android.view.View index="2" text="" class="android.view.View" content-desc="Home" checkable="false" checked="false" clickable="true" 6]" resource-id="" instance="1"/> 
      <android.widget.Button index="3" text="" class="android.widget.Button" content-desc="sign up " checkable="false" checked="false" clickable="true" 48]" resource-id="" instance="1"/> 
     <android.widget.Button index="4" text="" class="android.widget.Button" content-desc=" Clean Time Logs " checkable="false" checked="false" clickable="true" 8]" resource-id="" instance="2"/> 
     <android.view.View index="5" text="" class="android.view.View" scrollable="true" 84]" resource-id="" instance="2"> 
    <android.widget.Image index="0" text="" class="android.widget.Image" content-desc="PEGI_gambling" checkable="false" checked="false" clickable="true" 78]" resource-id="" instance="0"/> 
    <android.view.View index="1" text="" class="android.view.View" content-desc="Welcome!" checkable="false" checked="false" clickable="true" 342]" resource-id="" instance="3"/> 
    <android.view.View index="2" text="" class="android.view.View" content-desc="anonymous" checkable="false" checked="false" clickable="true" 404]" resource-id="" instance="4"/> 
    <android.view.View index="3" text="" class="android.view.View" 90]" resource-id="" instance="5"> 
     <android.widget.Image index="0" text="" class="android.widget.Image" content-desc="white-dove" checkable="false" checked="false" clickable="true" 88]" resource-id="" instance="1"/> 
</android.view.View> 
<android.view.View index="4" text="" class="android.view.View" content-desc="This is the home page of the mobile app. The right hand most button is for switching page. Bottom is the time logs of clicking button or changing the views. The button at the subheader is used for cleaning all time logs." checkable="false" checked="false" clickable="true" 184]" resource-id="" instance="6"/> 
<android.view.View index="5" text="" class="android.view.View" content-desc="*The Like, Comment are fake." checkable="false" checked="false" clickable="true" 1184]" resource-id="" instance="7"/> 
<android.view.View index="6" text="" class="android.view.View" 1184]" resource-id="" instance="8"> 
    <android.view.View index="0" text="" class="android.view.View" content-desc="Like" checkable="false" checked="false" clickable="true" 1184]" resource-id="" instance="9"/> 
    <android.view.View index="1" text="" class="android.view.View" content-desc="Comment" checkable="false" checked="false" clickable="true" ,1184]" resource-id="" instance="10"/> 
</android.view.View> 
</android.view.View> 
<android.view.View index="6" text="" class="android.view.View" scrollable="true" 1184]" resource-id="" instance="11"> 
    <android.view.View index="0" text="" class="android.view.View" 1184]" resource-id="" instance="12"> 
     <android.view.View index="0" text="" class="android.view.View" content-desc="Account &amp; Personal Info" checkable="false" checked="false" clickable="true" 316]" resource-id="" instance="13"/> 
     <android.view.View index="1" text="" class="android.view.View" 430]" resource-id="" instance="14"> 
      <android.view.View index="0" text="" class="android.view.View" content-desc="Username" 418]" resource-id="_label-0" instance="15"> 
       <android.view.View index="0" text="" class="android.view.View" content-desc="Username" checkable="false" checked="false" clickable="true" 404]" resource-id="" instance="16"/> 
</android.view.View> 
<android.widget.EditText index="1" text="" class="android.widget.EditText" content-desc="e.g. woody" checkable="false" checked="false" clickable="true" ,408]" resource-id="" instance="0"/> 
</android.view.View> 
<android.view.View index="2" text="" class="android.view.View" 544]" resource-id="" instance="17"> 
    <android.view.View index="0" text="" class="android.view.View" content-desc="Email" 532]" resource-id="_label-1" instance="18"> 
     <android.view.View index="0" text="" class="android.view.View" content-desc="Email" checkable="false" checked="false" clickable="true" 518]" resource-id="" instance="19"/> 
</android.view.View> 
<android.widget.EditText index="1" text="" class="android.widget.EditText" content-desc="[email protected]" checkable="false" checked="false" clickable="true" ,522]" resource-id="" instance="1"/> 
</android.view.View> 
<android.view.View index="3" text="" class="android.view.View" 658]" resource-id="" instance="20"> 
    <android.view.View index="0" text="" class="android.view.View" content-desc="Password" 646]" resource-id="_label-2" instance="21"> 
     <android.view.View index="0" text="" class="android.view.View" content-desc="Password" checkable="false" checked="false" clickable="true" 632]" resource-id="" instance="22"/> 
</android.view.View> 
<android.widget.EditText NAF="true" index="1" text="" class="android.widget.EditText" checkable="false" checked="false" clickable="true" ,636]" resource-id="" instance="2"/> 
</android.view.View> 
<android.view.View index="4" text="" class="android.view.View" 772]" resource-id="" instance="23"> 
    <android.view.View index="0" text="" class="android.view.View" content-desc="Birthday" 760]" resource-id="_label-3" instance="24"> 
     <android.view.View index="0" text="" class="android.view.View" content-desc="Birthday" checkable="false" checked="false" clickable="true" 746]" resource-id="" instance="25"/> 
</android.view.View> 
<android.widget.Spinner NAF="true" index="1" text="" class="android.widget.Spinner" checkable="false" checked="false" clickable="true" ,750]" resource-id="" instance="0"/> 
</android.view.View> 
<android.view.View index="5" text="" class="android.view.View" content-desc="Interest" checkable="false" checked="false" clickable="true" 860]" resource-id="" instance="26"/> 
<android.view.View index="6" text="" class="android.view.View" 976]" resource-id="" instance="27"> 
    <android.view.View index="0" text="" class="android.view.View" content-desc="Description" 964]" resource-id="_label-4" instance="28"> 
     <android.view.View index="0" text="" class="android.view.View" content-desc="Description" checkable="false" checked="false" clickable="true" 950]" resource-id="" instance="29"/> 
</android.view.View> 
<android.widget.EditText NAF="true" index="1" text="" class="android.widget.EditText" checkable="false" checked="false" clickable="true" ,964]" resource-id="" instance="3"/> 
</android.view.View> 
<android.widget.Button index="7" text="" class="android.widget.Button" content-desc="Submit " checkable="false" checked="false" clickable="true" ,1142]" resource-id="" instance="3"/> 
<android.widget.Button index="8" text="" class="android.widget.Button" content-desc="Reset " checkable="false" checked="false" clickable="true" ,1184]" resource-id="" instance="4"/> 
</android.view.View> 
</android.view.View> 
<android.view.View index="7" text="" class="android.view.View" scrollable="true" 184]" resource-id="" instance="30"> 
    <android.view.View index="0" text="" class="android.view.View" content-desc="[ 07:13:10.193 ] Page is loaded." checkable="false" checked="false" clickable="true" 184]" resource-id="" instance="31"/> 
    <android.view.View index="1" text="" class="android.view.View" content-desc="[ 07:13:10.019 ] Button is clicked." checkable="false" checked="false" clickable="true" 184]" resource-id="" instance="32"/> 
</android.view.View> 
</android.webkit.WebView> 
</android.webkit.WebView> 
</android.widget.FrameLayout> 
</android.widget.LinearLayout> 
<android.view.View index="1" text="" class="android.view.View" resource-id="android:id/statusBarBackground" instance="33"/> 
<android.view.View index="2" text="" class="android.view.View" 280]" resource-id="android:id/navigationBarBackground" instance="34"/> 
</android.widget.FrameLayout> 
</hierarchy> 

,代码:

 WebElement username = driver.findElementByXPath("//android.webkit.WebView[@content-desc='Sign Up Page']/android.view.View[@index='4']/android.view.View[@index='0']/android.view.View[@index='1']/android.widget.EditText[@index='1']"); 
    username.click(); 
    username.sendKeys("appium_username"); 

我要发送键将输入字段到的EditText {e.g。木质}元素。我怎样才能做到这一点?

  driver.findElementByXPath("//android.widget.Button[@index='1']").click(); 

    Actions action = new Actions(driver); 

    action.click(driver.findElement(By.xpath("//android.webkit.WebView[@content-desc='Sign Up Page']/android.view.View[@index='4']/" 
       + "android.view.View[@index='0']/android.view.View[@index='1']/android.widget.EditText[@index='1']"))); 

    action.sendKeys("appium_test"); 

我碰到下面的问题,我不知道到底发生了什么:

以下是行动的方法,我读莱尔的评论后写道 org.openqa.selenium.WebDriverException:方法尚未实施(警告:服务器未提供任何信息栈跟踪)

通过我的观察,也没有通过这些代码运行程序后显示键盘

+0

你得到的用户名? –

+0

没有。我得到EditText(它被设置为输入字段)。 content-desc ='Username'只是一个标签 –

回答

0
 //---try using Actions 

     Actions typeText = new Actions(Driver); 

     typeText.click(xpath); 
     typeText.sendKeys(textToSend); 
     typeText.perform(); 
+0

Actions类是指TouchAction还是MultiAction类? –

+0

这两个的Niether。只需使用Actions action = new Actions(Driver); – Lyle

+0

我得到 org.openqa.selenium.WebDriverException:方法尚未实现(警告:服务器未提供任何堆栈跟踪信息) –

0

尝试清除文本字段比再次发送键

typeText.clear(); 
typeText.sendKeys(xpath);