import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class BrowserSelection {
static WebDriver driver;
public static WebDriver usingChrome() {
System.setProperty("webdriver.chrome.driver",
"E:\\SeleniumLibs\\\\chromedriver_win32\\chromedriver.exe");
driver = new ChromeDriver();
driver.manage().window().maximize();
return driver;
}
}
public class MakeMyTripDateTest {
WebDriver driver;
@BeforeMethod
public void openBrowser(){
driver = BrowserSelection.usingChrome();
}
@AfterMethod
public void closeBrowser(){
driver.quit();
}
}
constructor - Chrome
Chrome için şu satırı dahil
ederiz.
import org.openqa.selenium.chrome.ChromeDriver;
Testi başlatmadan önce setUp() kısmında System.setProperty() çağrısı ile webdriver.chrome.driver değişkenini atamak gerekir.
Örnek
Şöyle
yaparız.
System.setProperty("webdriver.chrome.driver",
"C:\Selenium\\browser\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
Örnek
Burada Chrome Driver'ın path'ini veriyoruz. Chrom kurulumunu değil! Şu kod
yanlış
System.setProperty("webdriver.chrome.driver",
"C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe");
WebDriver driver = new ChromeDriver();
Şöyle
yaparız.
System.setProperty("webdriver.chrome.driver", "C:\\path\\to\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
Örnek - ChromeOptions
Şöyle
yaparız.
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
public class W3c {
public static void main(String[] args) throws Exception {
ChromeOptions opt = new ChromeOptions();
opt.setExperimentalOption("w3c", true);
ChromeDriver driver = new ChromeDriver(opt);
driver.get("https://www.google.co.in");
}
}
constructor - Firefox
Şu satırı dahil
ederiz.
import org.openqa.selenium.firefox.FirefoxDriver;
Testi başlatmadan önce setUp() kısmında System.setProperty() çağrısı ile
webdriver.gecko.driver değişkenini atamak gerekir.
Örnek
Şöyle
yaparız
System.setProperty(FirefoxDriver.SystemProperty.BROWSER_LOGFILE, "null");
System.setProperty("webdriver.gecko.driver", "C:\\Selenium\\Drivers\\geckodriver.exe");
driver = new FirefoxDriver();
constructor - Edge
Şu satırı dahil
ederiz.
import org.openqa.selenium.edge.EdgeDriver;
Testi başlatmadan önce setUp() kısmında System.setProperty() çağrısı ile
webdriver.edge.driver değişkenini atamak gerekir.
Örnek
Şöyle
yaparız.
System.setProperty("webdriver.edge.driver", "C:\\Users\\Foo\\Downloads\\
MicrosoftWebDriver.exe");
WebDriver driver = new EdgeDriver();
Örnek - RemoteWebDriver
import org.openqa.selenium.remote.RemoteWebDriver;
/*
WebDriverManager.chromedriver().setup();
driver = new ChromeDriver();
*/
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("build", "[Java] ...");
capabilities.setCapability("name", "[Java] ...");
capabilities.setCapability("platform", "Windows 10");
capabilities.setCapability("browserName", "Chrome");
capabilities.setCapability("version","85.0");
capabilities.setCapability("tunnel",false);
capabilities.setCapability("network",true);
capabilities.setCapability("console",true);
capabilities.setCapability("visual",true);
WebDriver driver = new RemoteWebDriver(new URL("http://..."), capabilities);
findElement metodu
Şu satırı dahil
ederiz. WebElement nesnesi döner.
import org.openqa.selenium.By;
Python ayrı byXXX metodları kullandığı için bence daha okumaklı. Şöyle
yaparız. Java da ise By.XXX şeklinde kullanılır.
chromedriver = webdriver.Chrome()
...
elem = chromedriver.find_element_by_class_name("twelve-days-claim")
elem2 = chromedriver.find_element_by_class_name("login-popup")
username = chromedriver.find_element_by_css_selector("div[id*='form-login']
[id='login-form-email'] input")
Selenium By Sınıfı yazısına taşıdım.
findElements metodu
Açıklaması
şöyle.
This method is affected by the 'implicit wait' times in force at the time of execution. When implicitly waiting, this method will return as soon as there are more than 0 items in the found collection, or will return an empty list if the timeout is reached.
Örnek
Elimizde bir XPath
olsun.
String path = "/html/body/div/div[3]/tr[1]/th";
Şöyle
yaparız.
List <WebElement> pagination= driver.findElements(By.xpath(path));
Örnek
Şöyle
yaparız.
List<WebElement> options = driver.findElements(by.xpath(" your locator"));
for(WebElement element : options){
if(element.getText().equals(" your value from drop down")){
element.click();
}
}
get metodu
Şöyle
yaparız.
driver.get("https://www.snapdeal.com/");
getWindowHandle metodu
Şöyle
yaparız.
String parentWindowHandler=driver.getWindowHandle();// Store your parent window
getWindowHandles metodu
Örnek
Şöyle
yaparız.
// Store the current window handle
String mainWin = driver.getWindowHandle();
// Perform the click operation that opens new window
//Wait till driver.getWindowHandles() returns 2 windows
// Switch to new window opened
for(String winHandle : driver.getWindowHandles()){
driver.switchTo().window(winHandle);
}
//Get current window to take decision on the next actions
String currentWin= driver.getWindowHandle();
// Perform the actions on new window
// Close the new window
driver.close();
// Switch back to original first window
driver.switchTo().window(mainWin);
Örnek
Şöyle
yaparız.
//store parent window value in string
String parentWindow = driver.getWindowHandle();
//store the set of all windows
Set<String> allwindows= driver.getWindowHandles();
for (String childWindow : allwindows) {
if(!childWindow.equals(parentWindow))
{
driver.switchTo().window(childWindow);
System.out.println("child window");
System.out.println(driver.getTitle());
// do some operation
//Closing the Child Window.
driver.close();
}
}
driver.switchTo().window(parentWindow);
manage metodu
WebDriver.Options Arayüzü döndürür.
navigate metodu
Şöyle
yaparız.
driver.navigate().back();
quit metodu
Şöyle
yaparız.
driver.quit();
switchTometodu
alert, frame, window için kullanılabilir.
Örnek
popup varsa şöyle
yaparız.
driver.switchTo().alert().accept();
Örnek
Şöyle
yaparız.
driver.switchTo().frame("iframeResult");
Örnek
Şöyle
yaparız.
Set<String> handles = driver.getWindowHandles(); // get all window handles
Iterator<String> iterator = handles.iterator();
while (iterator.hasNext()){
subWindowHandler = iterator.next();
}
driver.switchTo().window(subWindowHandler); // switch to popup window