2017-10-27 3 views
0

Ich verfolge die 2 Tutorial Websites unter:Selen Java WebDriver, NoSuchElementException: kein solches Element: Kann Element finden: { "Methode": "Klassenname", "Selektor": "btn_content"}

ich versuche, eine Login-Seite, zu automatisieren, aber immer auf der Schaltfläche „Weiter“ steckte auf die nächste Seite zu gelangen.

Ich verwende:

  • Chrome Browser-Version 61.0.3163.100
  • Eclipse-Java Oxygen
  • JDK 9
  • Selen-Java-Client-Treiber 3.6.0

Unten ist ein Ausschnitt des HTML für die Schaltfläche "Weiter".

<button type="submit" class="btn btn--block btn--raised primary" white--text="" style="position: relative;"> 
 
<div class="btn__content">Next</div> 
 
</button>

package newpackage; 

import java.util.concurrent.TimeUnit; 
import org.openqa.selenium.By; 
import org.openqa.selenium.WebElement; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.chrome.ChromeDriver; 

public class T2 { 
public static void main(String[] args) { 
    System.setProperty("webdriver.chrome.driver","C:\\Users\\struong\\chromedriver_win32\\chromedriver.exe"); 
    WebDriver driver = new ChromeDriver(); 
    driver.manage().timeouts().implicitlyWait(20,TimeUnit.SECONDS); 

    String baseUrl = "https://vertical.vappcenter.com/login"; 
    driver.get(baseUrl); 

    // Get the WebElement corresponding to the Email Address(TextField)  
    WebElement Email = driver.findElement(By.id("email"));           
    // Type in an email address 
    Email.sendKeys("[email protected]");           
    // Find the Next button and click it   
    WebElement bNext = driver.findElement(By.className("btn_content")); 
    // Using click method to click Next  
    bNext.click(); 

    } 
}  

ich Fehler:

_Starting ChromeDriver 2.32.498550 (9dec58e66c31bcc53a9ce3c7226f0c1c5810906a) on port 5146 Only local connections are allowed. Oct 26, 2017 3:47:13 PM org.openqa.selenium.remote.ProtocolHandshake createSession INFO: Detected dialect: OSS Exception in thread "main" org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"class name","selector":"btn_content"} (Session info: chrome=62.0.3202.62) (Driver info: chromedriver=2.32.498550 (9dec58e66c31bcc53a9ce3c7226f0c1c5810906a),platform=Windows NT 10.0.15063 x86_64) (WARNING: The server did not provide any stacktrace information) Command duration or timeout: 0 milliseconds For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html Build info: version: '3.6.0', revision: '6fbf3ec767', time: '2017-09-27T16:15:26.402Z' System info: host: 'STRUONG-DT', ip: '172.18.11.10', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '9' Driver info: org.openqa.selenium.chrome.ChromeDriver Capabilities [{mobileEmulationEnabled=false, hasTouchScreen=false, platform=XP, acceptSslCerts=true, webStorageEnabled=true, browserName=chrome, takesScreenshot=true, javascriptEnabled=true, platformName=XP, setWindowRect=true, unexpectedAlertBehaviour=, applicationCacheEnabled=false, rotatable=false, networkConnectionEnabled=false, chrome={chromedriverVersion=2.32.498550 (9dec58e66c31bcc53a9ce3c7226f0c1c5810906a), userDataDir=C:\Users\struong\AppData\Local\Temp\scoped_dir7400_24258}, takesHeapSnapshot=true, pageLoadStrategy=normal, unhandledPromptBehavior=, databaseEnabled=false, handlesAlerts=true, version=62.0.3202.62, browserConnectionEnabled=false, nativeEvents=true, locationContextEnabled=true, cssSelectorsEnabled=true}] Session ID: eb9bec8a6c5768eb31c3168d80b3831d *** Element info: {Using=class name, value=btn_content} at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:488) at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:214) at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:166) at org.openqa.selenium.remote.http.JsonHttpResponseCodec.reconstructValue(JsonHttpResponseCodec.java:40) at org.openqa.selenium.remote.http.AbstractHttpResponseCodec.decode(AbstractHttpResponseCodec.java:82) at org.openqa.selenium.remote.http.AbstractHttpResponseCodec.decode(AbstractHttpResponseCodec.java:45) at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:164) at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83) at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:586) at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:356) at org.openqa.selenium.remote.RemoteWebDriver.findElementByClassName(RemoteWebDriver.java:442) at org.openqa.selenium.By$ByClassName.findElement(By.java:391) at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:348) at newpackage.T2.main(T2.java:26)_

Antwort

0

Als Fehler vorschlagen, Selen nicht in der Lage ist Element zu finden. Sie können Elemente mit dem folgenden Text suchen:

By.XPath("//button[.= 'Next']") 
Verwandte Themen