2017-09-27 52 views
-3

**我用POM模型,並利用硒的webdriver的Eclipse)來運行我的代碼,但我卡住了,讓NoSuchElementExceptionNoSuchElement異常(硒)

org.openqa.selenium .NoSuchElementException:無法找到元素://輸入[@ id ='email']有關此錯誤的文檔,請訪問:http://seleniumhq.org/exceptions/no_such_element.html構建信息:版本:'3.4.0',修訂:'未知',時間:'未知'系統信息:host:'ISHWS37',ip:'10.0.0.60',os.name:'Windows 10',os.arch:'amd64',os.version:'10 .0',java.version:'1.8。 0_111'驅動程序信息:org.openqa.selenium.firefox.FirefoxDriver功能[{rotata ble = false,raisesAccessibilityExceptions = false,appBuildId = 20160421124000,版本= 46.0,platform = XP,proxy = Proxy(),specificationLevel = 1,acceptSslCerts = false,browserVersion = 46.0,platformVersion = 10.0,XULappId = {ec8030f7-c20a-464f會話ID:02585599-6b3e-4c03-9b2b-04291afa2052 ***元素信息:{},browserName = Firefox,takesScreenshot = true,takesElementScreenshot = true,javascriptEnabled = true,platformName = Windows_NT,device = desktop}使用的xpath =,=值//輸入[@ ID = '電子郵件']}在sun.reflect.NativeConstructorAccessorImpl.newInstance0(本機方法)在sun.reflect.NativeConstructorAccessorImpl.newInstance(未知來源)在sun.reflect.DelegatingConstructorAccessorImpl.newInstance (未知來源)在java.lang.reflect.Constructor.newInstance在org.openqa.selenium.remote.http(未知來源)在org.openqa.selenium.remote.http.W3CHttpResponseCodec.createException(W3CHttpResponseCodec.java:150)。 W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:115)at org.openqa.selen ium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:45)at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:164)at org.openqa.selenium.remote.service.DriverCommandExecutor.execute( DriverCommandExecutor.java:82)在org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:637)在org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:410)在org.openqa.selenium .remote.RemoteWebDriver.findElementByXPath(RemoteWebDriver.java:509)在org.openqa.selenium.By $ ByXPath.findElement(By.java:361)在org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:402 )at com.babysden.pages.Loginpage.type_username(Loginpage.java:28)at com.babysden.testcases.Verify_login.verifylogin(Verify_login.java:37)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun。反射.NativeMethodAccessorImpl.invoke(未知源)在sun.reflect.DelegatingMethodAccessorImpl.invoke(未知源)在java 。org.testng.internal.Invoker.invokeMethod(Invoker.java:645)org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:104).lang.reflect.Method.invoke(Unknown Source) .internal.Invoker.invokeTestMethod在組織(Invoker.java:851)在org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1177)在org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:129)。在org.testng.TestRunner.privateRun(TestRunner.java:756)上的testng.internal.TestMethodWorker.run(TestMethodWorker.java:112)位於org.testng.TestRunner.run(TestRunner.java:610)的org.testng.SuiteRunner .runTest(SuiteRunner.java:387)在org.testng.SuiteRunner.runSequentially(SuiteRunner.java:382)在org.testng.SuiteRunner.privateRun(SuiteRunner.java:340)在org.testng.SuiteRunner.run(SuiteRunner。 java:289)at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)at org.testng.TestNG.runSuitesSequentiall y(TestNG.java:1293)at org.testng.TestNG.runSuitesLocally(TestNG.java:1218)at org.testng.TestNG.runSuites(TestNG.java:1133)at org.testng.TestNG.run(TestNG.java :1104)at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:132)at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:236)at org.testng.remote.RemoteTestNG.main(RemoteTestNG。 java:81)。 當我執行代碼以前沒有這樣的元素被拋出也XPath我輸入是正確的,我已經驗證它。 公共課程登錄頁面 WebDriver驅動程序{ ; By Click_loginbtn = By.className(「login-text」); By username = By.xpath(「// input [@ id ='email']」); //無法找到 By pwd = By。className(「input-text required-entry validate-password form-control」); //無法找到 通過login_btn = By.name(「send」); By homepage = By.className(「lazy img-responsive」); public Loginpage(WebDriver驅動程序) { this.driver = driver; (); } public void Click_loginbtn() { driver.findElement(Click_loginbtn).click(); } public void type_username() { driver.findElement(username).sendKeys(「xyz.com」); } public void type_pwd() { driver.findElement(pwd).sendKeys(「vkt123456」); } public void type_login_btn() { driver.findElement(login_btn).click(); }} 和 public class Verify_login { WebDriver driver; @BeforeMethod public void OpenBrowser()throws InterruptedException driver = new FirefoxDriver(); //啓動瀏覽器 driver.manage()。window()。maximize(); //最大化窗口 driver.manage()。timeouts()。implicitlyWait(60,TimeUnit.SECONDS); driver.get(「http://babysden.demo2clients.com/」); //導航到Url System.out.println(「網址正在出現」); Thread.sleep(2000); } @Test public void verifylogin()throws InterruptedException Loginpage lp = new Loginpage(driver); //製成登錄

的對象
lp.Click_loginbtn(); //calling loginbtn from LoginpAGE Class 
    Thread.sleep(1000); 
    System.out.println("Clicking on login btn"); 

    lp.type_username(); //calling type_username from Loginpage Class 
    Thread.sleep(1000); 
    System.out.println("Enter username"); 

    lp.type_pwd(); //calling type_pwd from Loginpage Class 
    Thread.sleep(1000); 
    System.out.println("Enter Password"); 

    lp.type_login_btn(); //calling type_login_btn from Loginpage Class 
    Thread.sleep(1000); 
    System.out.println("Click on login"); 
    } 
+3

分享您的HTML代碼,請 – zsbappa

+0

讓我們知道您的AE試圖達到的目標。 – Kapil

+0

分享HTML或URL以便我們追蹤它 – iamsankalp89

回答

-1

試試這個代碼它的工作:

System.setProperty("webdriver.chrome.driver","Your driver path"); 
WebDriver driver = new ChromeDriver(); 
driver.manage().window().maximize(); 
driver.get("http://babysden.demo2clients.com/customer/account/login/referer/aHR0cDovL2JhYnlzZGVuLmRlbW8yY2xpZW50cy5jb20vP19fX1NJRD1V/"); 

//Locate element email and send values 
driver.findElement(By.id("email")).sendKeys("[email protected]"); 

////Locate element Password and send values 
driver.findElement(By.id("pass")).sendKeys("xxxxxxx"); 

//click on send 
driver.findElement(By.id("send2")).click(); 
+0

您建議的定位器不會找到與OP最初使用的元素(已失敗)不同的元素。使用隱式等待是一種不好的做法,並且您沒有提供任何可能在這裏實際工作的明確等待的代碼。 – JeffC

+0

:) :) :)沒有問題。請給解決方案。以便他可以使用它 – iamsankalp89

+0

這是重複的。我已經發布了該鏈接。 – JeffC