klasöründe saklanan "Object.Properties" dosyasından okuyamıyor Sellibum Web Sürücüsü ve Java'yı Eclipse'de kullanıyorum ve okumaya çalışıyorum Paket klasörü altındaki src klasöründe saklanan "Object.Properties" dosyasından xpath/Class id/link kimliği ve test verilerini veritabanından doldurun. Ancak, özellik dosya komut dosyasını takip eden 2. özellik okunduktan sonra Email, Pwd ve Submit için özellik okunmuyor. Script'in bu özelliği neden okumadığını anlayamıyorum.Selenium Web Sürücüsü Java kodları, xpath/Class id/link kimliğini, klasör klasöründe
Komut dosyanız paket klasörü altındaki src klasöründe saklanan "Object.Properties" dosyasından xpath/Class id/link kimliğini kullanarak web alanı, düğme, bağlantıyı belirleyecektir. Ve web sayfası için alan komut dosyası, test verilerini veritabanından getirecek ve bunları web sayfasındaki belirli bir alana yerleştirecektir. özelliği ardından
"Object.Properties" dosyasında saklanır ve bu özellik dosya paketi klasörünün altındaki src klasöründe depolanır: Burada
org.openqa.selenium.NoSuchElementException: Unable to locate element: {"method":"xpath","selector":"//input[@name='username']"}
Command duration or timeout: 12 milliseconds
For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html
Build info: version: '2.52.0', revision: '4c2593c', time: '2016-02-11 19:03:33'
System info: host: 'CAEITVDI-085', ip: '172.23.212.109', os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.8.0_66'
Driver info: org.openqa.selenium.firefox.FirefoxDriver
Capabilities [{applicationCacheEnabled=true, rotatable=false, handlesAlerts=true, databaseEnabled=true, version=41.0.1, platform=WINDOWS, nativeEvents=false, acceptSslCerts=true, webStorageEnabled=true, locationContextEnabled=true, browserName=firefox, takesScreenshot=true, javascriptEnabled=true, cssSelectorsEnabled=true}]
Session ID: d0672bd2-d9d0-413e-a734-1865a9cce733
*** Element info: {Using=xpath, value=//input[@name='username']}
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:206)
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:158)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:678)
at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:363)
at org.openqa.selenium.remote.RemoteWebDriver.findElementByXPath(RemoteWebDriver.java:500)
at org.openqa.selenium.By$ByXPath.findElement(By.java:361)
at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:355)
at com.provider.ProApp.testUserNamePassword(ProApp.java:76)
at com.provider.ProApp.setUpConnection(ProApp.java:42)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:85)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:639)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:816)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1124)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:108)
at org.testng.TestRunner.privateRun(TestRunner.java:774)
at org.testng.TestRunner.run(TestRunner.java:624)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:359)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:354)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:312)
at org.testng.SuiteRunner.run(SuiteRunner.java:261)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1215)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1140)
at org.testng.TestNG.run(TestNG.java:1048)
at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:112)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:205)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:176)
Caused by: org.openqa.selenium.NoSuchElementException: Unable to locate element: {"method":"xpath","selector":"//input[@name='username']"}
For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html
Build info: version: '2.52.0', revision: '4c2593c', time: '2016-02-11 19:03:33'
System info: host: 'CAEITVDI-085', ip: '172.23.212.109', os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.8.0_66'
Driver info: driver.version: unknown
at <anonymous class>.FirefoxDriver.prototype.findElementInternal_(file:///C:/Users/SAV19734/AppData/Local/Temp/anonymous6689352326673970234webdriver-profile/extensions/[email protected]/components/driver-component.js:10723)
at <anonymous class>.FirefoxDriver.prototype.findElement(file:///C:/Users/SAV19734/AppData/Local/Temp/anonymous6689352326673970234webdriver-profile/extensions/[email protected]/components/driver-component.js:10732)
at <anonymous class>.DelayedCommand.prototype.executeInternal_/h(file:///C:/Users/SAV19734/AppData/Local/Temp/anonymous6689352326673970234webdriver-profile/extensions/[email protected]/components/command-processor.js:12614)
at <anonymous class>.DelayedCommand.prototype.executeInternal_(file:///C:/Users/SAV19734/AppData/Local/Temp/anonymous6689352326673970234webdriver-profile/extensions/[email protected]/components/command-processor.js:12619)
at <anonymous class>.DelayedCommand.prototype.execute/<(file:///C:/Users/SAV19734/AppData/Local/Temp/anonymous6689352326673970234webdriver-profile/extensions/[email protected]/components/command-processor.js:12561)
:
URL = http://web.com/user-portal
ClickOnLoginLink = //*[@id='app']/div/main/section/ul/li[1]/a
Email = //input[@name='username']
Pwd = //input[@name='password']
Submit = //button[@name='loginButton']
Arıza istisna gösterisinin hemen ardından Benim temel sınıfım Kod:
package com.provider;
import java.io.FileInputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Properties;
import oracle.net.ns.NetException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.BeforeSuite;
public class BaseClass {
static WebDriver driver;
@BeforeSuite
public void setup() throws InterruptedException, IOException{
driver=new FirefoxDriver();
driver.manage().window().maximize();
Properties obj = new Properties();
FileInputStream objfile = new FileInputStream(System.getProperty("user.dir") +"\\src\\com\\provider\\Object.Properties");
obj.load(objfile);
driver.get(obj.getProperty("URL"));
}
}
Benim genişletilmiş sınıf Cod'um E: Aslında
package com.provider;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.testng.Assert;
import org.testng.annotations.Test;
public class ProApp extends BaseClass{
@Test
public void setUpConnection() throws ClassNotFoundException, SQLException, FileNotFoundException, InterruptedException, IOException {
String driver_DBPath = "jdbc:oracle:thin:@Host:Port:SID";
String DB_username = "*****";
String DB_password = "*****";
String Query = "select * from Table";
Connection con = DriverManager.getConnection(driver_DBPath, DB_username, DB_password);
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(Query);
while(rs.next()){
String Email = rs.getString("CLAIM_NUMBER");
String Pwd = rs.getString("INDIVIDUAL_NUM");
testUserNamePassword(Email, Pwd);
}
}
@Test(priority=1)
public void clickLoginLink() throws InterruptedException, IOException {
Properties obj = new Properties();
FileInputStream objfile = new FileInputStream(System.getProperty("user.dir") +"\\src\\com\\provider\\Object.Properties");
obj.load(objfile);
Thread.sleep(1000);
driver.findElement(By.xpath(obj.getProperty("ClickOnLoginLink"))).click();
Thread.sleep(1000);
}
@Test(priority=2)
public void testUserNamePassword(String Email1, String Pwd1) throws InterruptedException, IOException {
Thread.sleep(1000);
Properties obj = new Properties();
FileInputStream objfile = new FileInputStream(System.getProperty("user.dir") +"\\src\\com\\provider\\Object.Properties");
obj.load(objfile);
Thread.sleep(1000);
driver.findElement(By.xpath(obj.getProperty("Email"))).clear();
Thread.sleep(1000);
driver.findElement(By.xpath(obj.getProperty("Email"))).sendKeys(Email1);
Thread.sleep(1000);
driver.findElement(By.xpath(obj.getProperty("Pwd"))).clear();
Thread.sleep(1000);
driver.findElement(By.xpath(obj.getProperty("Pwd"))).sendKeys(Pwd1);
Thread.sleep(1000);
driver.findElement(By.xpath(obj.getProperty("Submit"))).click();
Thread.sleep(1000);
}
@Test(priority=3)
public void loginVerify() throws InterruptedException, IOException{
Properties obj = new Properties();
FileInputStream objfile = new FileInputStream(System.getProperty("user.dir") +"\\src\\com\\provider\\Object.Properties");
obj.load(objfile);
Assert.assertEquals("Wel Come To Testing World!!!", driver.findElement(By.xpath(obj.getProperty("WelComeToTestingWorld"))).getText());
}
@Test(priority=4)
public void logonVerify() throws InterruptedException, IOException{
Properties obj = new Properties();
FileInputStream objfile = new FileInputStream(System.getProperty("user.dir") +"\\src\\com\\provider\\Object.Properties");
obj.load(objfile);
WebElement DashboardHeader = driver.findElement(By.xpath(obj.getProperty("WelComeToTestingWorld")));
DashboardHeader.getText().equals("Wel Come To Testing World!!!");
}
}
Konsolda hata mesajı neydi? – gihan
Kaydını istisna olarak güncelledim. Mülk dosyasında sağlanan web öğesini kontrol ettim. Aslında, betik ilk iki web öğesini tanımlayabilir ve E-posta ve Şifre alanına kadar ulaşabilir. Ancak, komut dosyası özellik dosyasında depolanan web öğesini kullanarak E-posta ve Şifre alanını bulamıyor. Genişletilmiş sınıftaki komut dosyasında @Test (priority = 2) notu altında özellik dosyası yolu sağladım. – Curious
, Xpath aracılığıyla web öğesi bulmakta sorun gibi görünüyor. Xpath'larınızın doğru olup olmadığını kontrol edin. Diğer şeyler doğru gibi görünüyor. Bu size yardımcı olacaktır: http://www.seleniumeasy.com/selenium-tutorials/read-data-from-properties-file-using-java-selenium. Xpath öğelerini bulmak için bir araç kullanmayı deneyin. (https://addons.mozilla.org/en-US/firefox/addon/element-locator-for-webdriv/) – gihan