使用Java / selenium webdriver

时间:2016-05-12 00:37:48

标签: java selenium webdriver

HTML CODE

input class="btn primary" onclick="return login_jsp.saveRemember && login_jsp.saveRemember() || true;" 
type="submit" value="Sign In"

以下方法没有帮助:

1)

driver.findElement(By.className("btn primary")).sendKeys(Keys.ENTER).click();

2)

driver.findElement(By.cssSelector("input[class='btn primary']")).click();

(OR)

1)

driver.findElement(By.className("btn primary")).sendKeys(Keys.ENTER).sendKeys(Keys.ENTER);

2)

driver.findElement(By.cssSelector("input[class='btn primary']")).sendKeys(Keys.ENTER);

请建议。

4 个答案:

答案 0 :(得分:0)

你可以这样试试:

driver.findElement(By.cssSelector("input.btn.primary")).click()

答案 1 :(得分:0)

请参阅Sendkeys和Click将无法一起使用。 因此,如果有一些文本字段,您可以通过以下方式输入值:

05-12 11:54:20.249 2427-2427/com.example.champ.remindme2 E/libprocessgroup: failed to make and chown /acct/uid_10055: Read-only file system
05-12 11:54:20.311 2427-2435/com.example.champ.remindme2 E/art: Failed sending reply to debugger: Broken pipe
05-12 11:54:26.297 2427-2427/com.example.champ.remindme2 E/GMPM: GoogleService failed to initialize, status: 10, Missing an expected resource: 'R.string.google_app_id' for initializing Google services.  Possible causes are missing google-services.json or com.google.gms.google-services gradle plugin.
05-12 11:54:26.298 2427-2427/com.example.champ.remindme2 E/GMPM: Scheduler not set. Not logging error/warn.
05-12 11:54:26.578 2427-2518/com.example.champ.remindme2 E/GMPM: Uploading is not possible. App measurement disabled
05-12 11:55:34.762 2427-2427/com.example.champ.remindme2 E/AndroidRuntime: FATAL EXCEPTION: main
                                                                           Process: com.example.champ.remindme2, PID: 2427
                                                                           java.lang.IllegalStateException: Could not execute method of the activity
                                                                               at android.view.View$1.onClick(View.java:4020)
                                                                               at android.view.View.performClick(View.java:4780)
                                                                               at android.view.View$PerformClick.run(View.java:19866)
                                                                               at android.os.Handler.handleCallback(Handler.java:739)
                                                                               at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                               at android.os.Looper.loop(Looper.java:135)
                                                                               at android.app.ActivityThread.main(ActivityThread.java:5254)

                                                                               at java.lang.reflect.Method.invoke(Method.java:372)
                                                                               at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
                                                                               at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
                                                                            Caused by: java.lang.reflect.InvocationTargetException
                                                                               at java.lang.reflect.Method.invoke(Native Method)
                                                                               at java.lang.reflect.Method.invoke(Method.java:372)
                                                                               at android.view.View$1.onClick(View.java:4015)
                                                                               at android.view.View.performClick(View.java:4780) 
                                                                               at android.view.View$PerformClick.run(View.java:19866) 
                                                                               at android.os.Handler.handleCallback(Handler.java:739) 
                                                                               at android.os.Handler.dispatchMessage(Handler.java:95) 
                                                                               at android.os.Looper.loop(Looper.java:135) 
                                                                               at android.app.ActivityThread.main(ActivityThread.java:5254) 
                                                                               at java.lang.reflect.Method.invoke(Native Method) 
                                                                               at java.lang.reflect.Method.invoke(Method.java:372) 
                                                                               at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
                                                                               at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 
                                                                            Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.os.Bundle.getString(java.lang.String)' on a null object reference
                                                                               at com.example.champ.remindme2.AddEventPlace.Done(AddEventPlace.java:107)
                                                                               at java.lang.reflect.Method.invoke(Native Method) 
                                                                               at java.lang.reflect.Method.invoke(Method.java:372) 
                                                                               at android.view.View$1.onClick(View.java:4015) 
                                                                               at android.view.View.performClick(View.java:4780) 
                                                                               at android.view.View$PerformClick.run(View.java:19866) 
                                                                               at android.os.Handler.handleCallback(Handler.java:739) 
                                                                               at android.os.Handler.dispatchMessage(Handler.java:95) 
                                                                               at android.os.Looper.loop(Looper.java:135) 
                                                                               at android.app.ActivityThread.main(ActivityThread.java:5254) 
                                                                               at java.lang.reflect.Method.invoke(Native Method) 
                                                                               at java.lang.reflect.Method.invoke(Method.java:372) 
                                                                               at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
                                                                               at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 
05-12 11:59:59.915 6972-6972/com.example.champ.remindme2 E/GMPM: GoogleService failed to initialize, status: 10, Missing an expected resource: 'R.string.google_app_id' for initializing Google services.  Possible causes are missing google-services.json or com.google.gms.google-services gradle plugin.
05-12 11:59:59.917 6972-6972/com.example.champ.remindme2 E/GMPM: Scheduler not set. Not logging error/warn.
05-12 12:00:00.082 6972-7001/com.example.champ.remindme2 E/GMPM: Uploading is not possible. App measurement disabled
05-12 12:01:46.745 6972-6972/com.example.champ.remindme2 E/AndroidRuntime: FATAL EXCEPTION: main
                                                                           Process: com.example.champ.remindme2, PID: 6972
                                                                           java.lang.IllegalStateException: Could not find method Back(View) in a parent or ancestor Context for android:onClick attribute defined on view class android.support.v7.widget.AppCompatButton with id 'BackButton'
                                                                               at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.resolveMethod(AppCompatViewInflater.java:321)
                                                                               at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:280)
                                                                               at android.view.View.performClick(View.java:4780)
                                                                               at android.view.View$PerformClick.run(View.java:19866)
                                                                               at android.os.Handler.handleCallback(Handler.java:739)
                                                                               at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                               at android.os.Looper.loop(Looper.java:135)
                                                                               at android.app.ActivityThread.main(ActivityThread.java:5254)
                                                                               at java.lang.reflect.Method.invoke(Native Method)
                                                                               at java.lang.reflect.Method.invoke(Method.java:372)
                                                                               at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
                                                                               at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
05-12 12:01:51.682 8463-8463/com.example.champ.remindme2 E/GMPM: GoogleService failed to initialize, status: 10, Missing an expected resource: 'R.string.google_app_id' for initializing Google services.  Possible causes are missing google-services.json or com.google.gms.google-services gradle plugin.
05-12 12:01:51.683 8463-8463/com.example.champ.remindme2 E/GMPM: Scheduler not set. Not logging error/warn.
05-12 12:01:51.989 8463-8500/com.example.champ.remindme2 E/GMPM: Uploading is not possible. App measurement disabled

然后,如果您需要点击某个按钮或链接,您可以使用Click()作为:

driver.findElement(By.className("btn primary")).sendKeys(Keys.ENTER);

注意:您应该使用相同的xpath,以执行sendkeys()或单击()

如果您有进一步的查询,请回复我。 快乐学习: - )

答案 2 :(得分:0)

您可以尝试使用以下定位器

  

Css选择器

     

输入[value ='登录']

     

input.btn.primary

     

的xpath

     

//输入[@value ='登录']

     

//输入[@class =' btn primary']

请使用上面提取的具体元素,可以在使用webdriver脚本之前使用firepath。

如果要模拟ENTER,请转到带有键事件的sendkeys。如果您只想单击元素,则只需使用click();

这个link可以帮助您编写css选择器,并在xpath上编写此link

谢谢你, 穆拉利

答案 3 :(得分:0)

1. driver.findElement(By.cssSelector(".btn primary")).click();
2. driver.findElement(By.xpath("//input[@type='submit']").click();
3. driver.findElement(By.xpath("//input[@value='Sign In']").click();
3. driver.findElement(By.xpath("//input[text()='Sign In']").click();

尝试下面的方法

{{1}}