首页 文章

NoSuchElement异常(selenium)[重复]

提问于
浏览
-3

这个问题在这里已有答案:

**我使用了POM模型并使用selenium webdriver(Eclipse)来运行我的代码,但是我遇到了问题,得到了 NoSuchElementException

org.openqa.selenium.NoSuchElementException:无法找到element:// input [@ id ='email']有关此错误的文档,请访问:http://seleniumhq.org/exceptions/no_such_element.html构建信息:版本:'3.4.0',修订版:'未知',时间:'未知'系统信息:主机:'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功能[{rotating = false,raisesAccessibilityExceptions = false,appBuildId = 20160421124000,version = 46.0 ,platform = XP,proxy = Proxy(),specificationLevel = 1,acceptSslCerts = false,browserVersion = 46.0,platformVersion = 10.0,XULappId = ,browserName = Firefox,takeScreenshot = true,takesElementScreenshot = true,javascriptEnabled = true,platformName = Windows_NT,device = desktop}]会话ID:02585599-6b3e-4c03-9b2b-04291afa2052 ***元素信息:{Using = xpath,value = // input [@ id ='email ')}在sun.reflect.NativeConstruc位于org.openqa的java.lang.reflect.Constructor.newInstance(未知来源)的sun.reflect.DelegatingConstructorAccessorImpl.newInstance(未知来源)处的sun.reflect.NativeConstructorAccessorImpl.newInstance(未知来源)处的torAccessorImpl.newInstance0(本地方法) . selenium.remote.http.W3CHttpResponseCodec.createException(W3CHttpResponseCodec.java:150)atg.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:115)org.openqa.selenium.remote.http.W3CHttpResponseCodec . 解码(W3CHttpResponseCodec.java:45)org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:164)org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:82)at org .openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:637)org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:410)atg.openqa.selenium.remote.RemoteWebDriver.findElementByXPath(RemoteWebDriver) .java:509)在org.openqa .selenium.By $ ByXPath.findElement(By.java:361)atg.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:402)at com.babysden.pages.Loginpage.type_username(Loginpage.java:28 )在sun.reflect.DelegatingMethodAccessorImpl.invoke的sun.reflect.NativeMethodAccessorImpl.invoke(未知来源)的sun.reflect.NativeMethodAccessorImpl.invoke0(本地方法)的com.babysden.testcases.Verify_login.verifylogin(Verify_login.java:37)处 . org.testng.invoke.invokeMethod上的org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:104)中java.lang.reflect.Method.invoke(未知来源)的(未知来源)(Invoker.java: 645)org.testng.internal.InvokeTestMethod(Invoker.java:851)org.testng.internal.InvokeTinMethods(Invoker.java:1177)org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java)中的org.testng.internal.Invoker.invokeTestMethod(Invoker.java:851) :129)在org.testng.TestMethodWorker.run(TestMethodWorker.java:112)atg.testng.TestRunner.privateRun(TestRunn) er.java:756)org.testng.TestRunner.run(TestRunner.java:610)atg.testng.SuiteRunner.runTest(SuiteRunner.java:387)at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:382) )org.testng.SuiteRunner.privateRun(SuiteRunner.java:340)org.testng.SuiteRunner.run(SuiteRunner.java:289)atg.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)atg.testng .OiteRunnerWorker.run(SuiteRunnerWorker.java:86)org.testng.TestNG.runSuitesSequentially(TestNG.java:1293)atg.testng.TestNG.runSuitesLocally(TestNG.java:1218)atg.testng.TestNG.runSuites( TestNG.java:1133)org.testng.TestNG.run(TestNG.java:1104)atg.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:132)atg.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG) .java:236)at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:81) . 当我执行代码时,之前没有抛出这样的元素,我输入的XPath是正确的,我已经验证了它 . 公共类登录页面{WebDriver驱动程序;通过Click_loginbtn = By.className(“login-text”);按用户名= By.xpath(“// input [@ id ='email']”); //无法找到By pwd = By.className(“input-text required-entry validate-password form-control”); //无法找到按login_btn = By.name(“send”);通过homepage = By.className(“lazy img-responsive”);公共登录页面(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();公共类Verify_login {WebDriver驱动程序; @BeforeMethod public voidOpenBrowser()抛出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(“Url正在出现”);了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");
    }

1 回答

  • -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("abcd@gmail.com");
    
    ////Locate element Password and send values 
    driver.findElement(By.id("pass")).sendKeys("xxxxxxx");
    
    //click on send
    driver.findElement(By.id("send2")).click();
    

相关问题