how run selenium webdriver different popular browsers
Selenium은 웹 기반 애플리케이션 만 지원하며이를 열려면 브라우저가 필요합니다. Selenium은 테스트 자동화를 위해 다양한 브라우저를 지원할 수 있습니다.
이 튜토리얼에서는 시장에서 사용 가능한 다양한 브라우저에 대한 드라이버를 설정하는 방법을 설명합니다.
현재 업계에서 널리 사용되는 인기 브라우저는 Google Chrome, Mozilla Firefox 및 Internet Explorer 세 가지뿐입니다. 그러나 Selenium은 다른 브라우저도 지원합니다. 다른 브라우저에서 스크립트를 실행하려면 해당 브라우저의 드라이버가 필요합니다.
학습 내용 :
다른 브라우저 용 드라이버를 설정하는 방법
권장 도구 :
# 1) LambdaTest
확장 가능하고 안전하며 안정적인 클라우드 기반 Selenium Grid에서 온라인으로 Selenium 자동화 테스트를 수행하십시오. Selenium 테스트 자동화를 가속화하는 동시에 2000 개 이상의 데스크탑 및 모바일 브라우저 환경의 온라인 인프라에서 테스트하여 테스트 범위를 늘리십시오.
=> LambdaTest 웹 사이트 방문
Selenium 자동화를 처음 시작할 때 첫 번째 코드 줄은 다음과 같습니다.
WebDriver 드라이버 = 새 FireFoxDriver ();
이는 WebDriver가 인터페이스이고 유형이 인터페이스 인 참조 변수 (드라이버)를 정의하고 있음을 의미합니다.
이제 우리가 할당하는 모든 객체는 클래스 (FireFoxDriver)의 인스턴스이거나 해당 인터페이스를 구현하는 다른 드라이버 여야합니다. 우리의 경우 FireFoxDriver는 클래스이고 인터페이스는 WebDriver입니다.
모든 드라이버 설정이 완료되면 다음과 같은 Selenium 명령을 실행합니다.
driver.getTitle ();
스크린 샷 참조 :
Java 2D 배열을 다른 배열로 복사
이제 내부적으로 HTTP 요청이 생성되어 우리가 정의한 특정 브라우저 드라이버로 전송되고, 브라우저 드라이버는 HTTP 요청을 받기 위해 해당 HTTP 서버를 사용하고 Selenium 명령을 구현하는 데 필요한 단계를 결정합니다.
생성 된 로직이 브라우저에서 실행 된 다음 실행 결과가 HTTP 서버로 다시 전송되고 상태를 다시 자동화 스크립트로 다시 보냅니다.
따라서 드라이버를 설정 한 후 다음과 같은 드라이버 클래스의 모든 내장 메서드에 액세스 할 수 있습니다.
- findElement ();
- 닫기();
- getClass (); 그리고 더 많은
스크린 샷 참조 :
이러한 방법에 액세스하려면 ' 운전사. ”버튼을 누르면 모든 방법이 표시됩니다. 그렇지 않으면 'ctrl + space'를 눌러 방법을 보여줍니다.
스크린 샷 참조 :
'ctrl + space'를 눌러도 내장 메소드에 액세스 할 수없는 경우가 있습니다. 그런 다음 환경 변수에서 만든 JAVA_HOME 경로 설정을 확인하고 올바른지 확인해야합니다.
환경 변수를 설정하는 단계 :
- 제어판으로 이동-> 시스템 클릭
- 고급 시스템 설정으로 이동
- 환경 변수 버튼 클릭
- 새 버튼을 클릭하면 JAVA_HOME 경로를 설정합니다.
Selenium은 Selenium WebDriver jar 파일에 번들로 제공되는 기본 Mozilla Firefox 드라이버와 함께 제공됩니다. 그렇기 때문에 Firefox 드라이버를 호출 할 때 설정이 필요하지 않습니다. 다른 브라우저를 사용하려면 시스템 속성을 설정해야합니다.
추천 읽기 => Selenium Grid를 사용한 크로스 브라우저 테스트
Selenium WebDriver를 사용한 브라우저 간 테스트
이제 아래에 언급 된 브라우저에서 드라이버의 설정 및 실행을 볼 수 있습니다.
#1) 모질라 파이어 폭스
#두) 구글 크롬
#삼) 인터넷 익스플로러
# 4) 오페라
# 5) Ghost Driver 또는 PhantomJS
# 6) HTML 단위
언급 된 브라우저 용 드라이버 (PhantomJS 및 HTML Unit 제외 – 아래에서 확인)는 여기에서 다운로드 할 수 있습니다. 셀레늄 HQ
여러분 모두가 위에서 언급 한 다양한 브라우저를 알고 있다고 가정하고 고스트 드라이버 과 HTML 단위 드라이버 기능 및 스크립트 설정 방법.
# 1) HTML 유닛 드라이버
이 드라이버를 사용하여 헤드리스 브라우저 테스트를 수행 할 수 있습니다. 즉, 내부적으로 실행될 때 볼 수있는 GUI가 없습니다. 또한 일반 브라우저 에서처럼 모든 작업을 수행 할 수는 없습니다.
일반적으로 테스트를 위해 HTML 단위 드라이버는 권장되지 않습니다. 그러나 더 빠르기 때문에 WebDriver의 가장 가벼운 구현은 테스트 데이터를 생성하고 한 웹 페이지의 내용을 다른 프로그램이나 스크립트로 전달하는 데 사용됩니다.
HTML 단위 드라이버를 사용하기 위해 추가 API 또는 jar 파일을 설치할 필요가 없습니다. Selenium 서버 독립형 jar 파일이 있으면 사용할 수 있습니다.
아래 코드를 참조하십시오.
//Create a Java Project, under it create a package, and under package create a class packageheadless_browser_testing; import org.openqa.Selenium.WebDriver; importorg.openqa.Selenium.htmlunit.HtmlUnitDriver; import org.testng.Assert; import org.testng.annotations.Test; publicclassvefifyTestTitle { //You can run your script with TestNG or JUnit or using Java Application // I am using TestNG and using TestNG annotations @Test publicvoidverifyFacebookTitle() { //Call HtmlUnit Driver WebDriver driver = newHtmlUnitDriver(true); //It will get the Facebook URL and run the script in background, means you //will not see the Facebook page driver.get('http://www.facebook.com'); //It will fetch the FB title and store in String String facebook_Title= driver.getTitle(); //Assert condition will check the expected and actual title, if it matches //our test passes Assert.assertTrue(facebook_Title.contains('Facebook')); System.out.println(facebook_Title); } }
산출 : Facebook – 로그인 또는 가입
통과 : verifyFacebookTitle
HTML 단위 드라이버는 jquery, javascript 또는 HTML 5를 사용하는 복잡한 애플리케이션에는 권장되지 않습니다. 기본적으로 javascript를 지원하지 않습니다. 따라서이를 뒷받침하려면 조건을 true로 지정해야합니다.
# 2) PhantomJS 드라이버
PhantomJS 브라우저는 헤드리스 브라우저 테스트를 수행하는데도 사용됩니다. JavaScript API를 사용합니다. 헤드리스 웹 사이트 테스트에 사용하고 웹 페이지에 액세스 할 수 있습니다. HTML Unit Driver에 비해 한 가지 장점은 스크린 샷을 캡처 할 수 있다는 것입니다. 테스트가 백그라운드에서 실행되고 스크린 샷이 캡처됨을 의미합니다.
Selenium WebDriver와 함께 PhantomJS 브라우저를 사용하려면 GhostDriver를 사용하고 다운로드해야합니다. PhantomJS 브라우저 용 단순 JS에서 WebDriver 유선 프로토콜을 구현 한 것입니다. 이제 최신 PhantomJS 릴리스에서는 GhostDriver를 PhantomJS와 통합했습니다. 따라서 지금 별도로 설치할 필요가 없습니다.
여기에서 PhantomJs.exe 파일을 다운로드하십시오. PhantomJs
PhantomJS를 실행하려면 PhantomJS 드라이버가 필요합니다. 다운로드 링크: PhantomJS 드라이버
그리고 스크립트를 실행할 때 PhantomJs.binary.path 속성 파일을 설정해야합니다.
아래 코드를 참조하십시오.
//Create a Java Project, then under it create a package, under package create a class packageheadless_browser_testing; import java.io.File; import org.openqa.Selenium.WebDriver; import org.openqa.Selenium.phantomjs.PhantomJSDriver; import org.testng.annotations.Test; publicclass phantom_Js_Driver { //You can run your script with TestNG or JUnit or using Java Application // I am using TestNG and using TestNG annotations @Test publicvoidverifyFacebookTitle() { //Set the path to access the phantomjs.exe file File src = newFile('E:\exe\phantomjs-2.1.1-windows\bin\phantomjs.exe'); //You need to specify the property here and give path of driver System.setProperty('phantomjs.binary.path', src.getAbsolutePath()); //Call your PhantomJs Driver WebDriver driver = newPhantomJSDriver(); //It will get the Facebook URL and run the script in background, means you //will not see the Facebook page driver.get('http://www.facebook.com'); //Print the currentURL of the page System.out.println(driver.getCurrentUrl()); } }
산출 : https://www.facebook.com/
통과 : verifyFacebookTitle
# 3) Mozilla Firefox 드라이버
Firefox 브라우저에서 WebDriver를 실행하는 방법 :
Firefox 드라이버를 호출하기 위해 추가 jar 파일을 설치하거나 구성 할 필요가 없습니다. Selenium WebDriver가 지원하는 기본 드라이버입니다.
실행을 위해 아래 코드를 참조하십시오.
package Different_Drivers; import org.openqa.Selenium.WebDriver; import org.openqa.Selenium.firefox.FirefoxDriver; import org.testng.annotations.Test; import org.testng.Assert; public class FF_Driver { @Test public void Test_Gmail_Login() { WebDriver driver = new FirefoxDriver(); driver.get(“http://www.gmail.com”); driver.findElement(By.id('Email')).sendKeys('Enter user name'); driver.findElement(By.id('next')).click(); Thread.sleep(2000); driver.findElement(By.id('Passwd')).sendKeys('Enter Password'); driver.findElement(By.id('signIn')).click(); Thread.sleep(2000); String title_Of_Page = driver.getTitle(); Assert.assertEquals(driver.getTitle(), title_Of_Page); System.out.println('Page title matched'); } }
산출 : 페이지 제목 일치
통과 : Test_Gmail_Login
# 4) Google Chrome 드라이버
Chrome 브라우저에서 WebDriver를 실행하는 방법 :
Google 크롬 드라이버를 호출하려면 먼저 드라이버를 다운로드 한 다음 아래 코드를 사용하여 시스템 속성을 설정하십시오.
자바에서 배열의 한 요소를 인쇄하는 방법
package Different_Drivers; import org.openqa.Selenium.WebDriver; import org.openqa.Selenium.chrome.ChromeDriver; import org.testng.annotations.Test; importjava.util.Iterator; import java.util.Set; public class googleChrome_Driver { @Test public void Test_Rediff_Alert()throws InterruptedException{ //set system property, so that we can access chrome driver System.setProperty('webdriver.chrome.driver', 'E:\chromedriver.exe'); // It will open the Chrome browser and execute your logic WebDriverdriver = new ChromeDriver(); //Open rediff page in chrome browser driver.get(“http://www.rediffmail.com”); //wait for page to load Thread.sleep(5000); // It will get and store the main window page handle or id String mainpage = driver.getWindowHandle(); String subwinhandleString = null; //set a loop which will store all window pop up handles Set handle = driver.getWindowHandles(); Iterator iterator = handle.iterator(); while(iterator.hasNext ()) { subwinhandleString = iterator.next( ); } driver.switchTo().window(subwinhandleString); System.out.println(driver.getTitle()); Thread.sleep(2000); driver.close(); //Again switch back to main window driver.switchTo().window(mainpage); System.out.println(driver.getTitle()); } }
산출 : rediff.com에 오신 것을 환영합니다.
Rediff.com : 온라인 쇼핑, Rediffmail, 최신 인도 뉴스, 비즈니스, 볼리우드, 스포츠, 주식, 라이브 크리켓 점수, 돈, 영화 리뷰
통과 : Test_Rediff_Alert
또한 읽으십시오=> Selenium 튜토리얼 – Chrome 및 IE 브라우저에서 요소 찾기
# 5) Internet Explorer 드라이버
IE 브라우저에서 WebDriver를 실행하는 방법 :
Internet Explorer 드라이버를 호출하려면 드라이버를 다운로드하고 시스템 속성을 설정하십시오.
아래 코드를 참조하십시오.
package Different_Drivers; import org.openqa.selenium.WebDriver; import org.openqa.selenium.ie.InternetExplorerDriver; import org.openqa.selenium.remote.DesiredCapabilities; import org.testng.annotations.Test; public class internetExplorer_Driver { @Test public void ieDriver() throws InterruptedException { //set system property, so that we can access IE driver System.setProperty('webdriver.ie.driver','E\IEDriverServer.exe'); //set desiredcapabilites for calling ie driver DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer(); capabilities.setCapability (InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true); WebDriver driver = new InternetExplorerDriver(capabilities); driver.get('https://www.google.com'); Thread.sleep(5000); String title_Of_Page = driver.getTitle(); System.out.println(title_Of_Page); } }
산출 : Google
통과 : ieDriver
# 6) 오페라 드라이버
Opera Driver를 호출하려면 드라이버를 다운로드하고 시스템 속성을 설정하십시오.
아래 코드를 참조하십시오.
package Different_Drivers; import org.openqa.Selenium.WebDriver; importorg.openqa.Selenium.opera.OperaDriver; import org.testng.annotations.Test; import org.testng.Assert; public class operaDriver { @Test public void createAccount(){ //set system property, so that we can access opera driver System.setProperty('webdriver.opera.driver', 'E:\operadriver.exe'); // it will open the opera browser WebDriver driver = newOperaDriver(); driver.get('https://www.google.com/intl/en/mail/help/about.html'); // Here driver will try to find out create an account link on the application WebElement createAccount = driver.findElement(By.xpath('.//*(@id='gmail-create-account')')); Assert.assertTrue(createAccount.isDisplayed()); //Create Account will be clicked only if the above condition is true createAccount.click(); System.out.println(createAccount.getText()); } }
산출 : 계정 만들기
통과 : operaDriver
또한 읽으십시오=> 셀레늄의 TestNG 주석
결론
이 튜토리얼에서는 다양한 브라우저 용 드라이버를 설정하고 사용하는 방법을 다뤘습니다.
HTML 유닛 드라이버와 PhantomJS 드라이버가 일반적으로 사용되는 다른 브라우저와 어떻게 다른지 확인했습니다. 그 이유는 Google 크롬과 같은 일반적인 브라우징에 사용되지 않기 때문입니다. 대신 내부적으로 작동하며 GUI를 지원하지 않으므로 명령을 더 빠르게 실행합니다. PhantomJS로 서버 측 스크립팅을 수행 할 수도 있습니다.
이제 드라이버를 설정하고 다양한 브라우저에서 작동하도록하는 방법을 이해 했으므로이 작업을 수행하는 이유를 명확히해야합니다. 아시다시피 Selenium은 웹 기반 애플리케이션 만 지원하며이를 열려면 브라우저가 필요합니다.
이러한 브라우저를 여는 데 사용할 수있는 다양한 드라이버 (위에서 설명)가 있습니다. WebDriver는 정의 된 모든 추상 메서드를 포함하는 인터페이스입니다. 따라서이 자습서에서 설명하는 이러한 메서드를 호출하여 작업을 수행합니다.
이 튜토리얼에 대한 질문이나 의견이 있으면 알려주십시오.
추천 도서
- Cucumber Selenium 튜토리얼 : Cucumber Java Selenium WebDriver 통합
- Selenium WebDriver 소개 – Selenium Tutorial # 8
- 첫 번째 WebDriver 스크립트 구현 – Selenium WebDriver Tutorial # 10
- 셀레늄 FAQ
- Selenium WebDriver에서 경고 / 팝업을 처리하는 방법-Selenium Tutorial # 16
- Selenium WebDriver의 암시 적 및 명시 적 대기 (Selenium 대기 유형)
- Selenium WebDriver에서 익스텐트 보고서 생성 가이드
- GeckoDriver Selenium 튜토리얼 : Selenium 프로젝트에서 GeckoDriver를 사용하는 방법