수색…


PhantomJS [C #]

PhantomJS 는 자바 스크립트를 지원하는 완벽한 기능의 헤드리스 웹 브라우저 입니다 .

시작하기 전에 PhantomJS 드라이버를 다운로드해야하며 코드 시작 부분 에이 드라이버를 넣어야합니다.

using OpenQA.Selenium;
using OpenQA.Selenium.PhantomJS;

이제 초기화 단계로 넘어갑니다.

var driver = new PhantomJSDriver();

그러면 PhantomJSDriver 클래스의 새 인스턴스가 만들어집니다. 그런 다음 모든 WebDriver와 같은 방식으로 사용할 수 있습니다.

using (var driver = new PhantomJSDriver())
{
    driver.Navigate().GoToUrl("http://stackoverflow.com/");

    var questions = driver.FindElements(By.ClassName("question-hyperlink"));

    foreach (var question in questions)
    {
        // This will display every question header on StackOverflow homepage.
        Console.WriteLine(question.Text);
    }
}

이것은 잘 작동합니다. 그러나 UI에서 작업 할 때 PhantomJS 는 새로운 콘솔 창을 열어 대부분의 경우 원하지 않습니다. 다행히 창을 숨기고 PhantomJSOptionsPhantomJSDriverService 사용하여 성능을 약간 향상시킬 수도 있습니다. 아래의 전체 작동 예제 :

// Options are used for setting "browser capabilities", such as setting a User-Agent
// property as shown below:
var options = new PhantomJSOptions();
options.AddAdditionalCapability("phantomjs.page.settings.userAgent", 
"Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0");

// Services are used for setting up the WebDriver to your likings, such as
// hiding the console window and restricting image loading as shown below:
var service = PhantomJSDriverService.CreateDefaultService();
service.HideCommandPromptWindow = true;
service.LoadImages = false;

// The same code as in the example above:
using (var driver = new PhantomJSDriver(service, options))
{
    driver.Navigate().GoToUrl("http://stackoverflow.com/");

    var questions = driver.FindElements(By.ClassName("question-hyperlink"));

    foreach (var question in questions)
    {
        // This will display every question header on StackOverflow homepage.
        Console.WriteLine(question.Text);
    }
}

프로 팁 : 클래스 (예 : PhantomJSDriverService )를 클릭하고 F12 키를 눌러 포함 된 내용과 기능에 대한 간략한 설명을 확인하십시오.

SimpleBrowser [C #]

SimpleBrowser 는 JavaScript를 지원 하지 않는 가벼운 WebDriver입니다.

앞서 언급 한 PhantomJS 보다 훨씬 빠르지 만, 기능면에서 보면 멋진 기능이없는 간단한 작업으로 제한됩니다.

첫째, SimpleBrowser.WebDriver 패키지를 다운로드하고이 코드를 처음부터 입력해야합니다.

using OpenQA.Selenium;
using SimpleBrowser.WebDriver;

이제는 그것을 사용하는 간단한 예제가 있습니다 :

using (var driver = new SimpleBrowserDriver())
{
    driver.Navigate().GoToUrl("http://stackoverflow.com/");

    var questions = driver.FindElements(By.ClassName("question-hyperlink"));

    foreach (var question in questions)
    {
        // This will display every question header on StackOverflow homepage.
        Console.WriteLine(question.Text);
    }
}

Java의 헤드리스 브라우저

HTMLUnitDriver

HTMLUnitDriver는 HtmlUnit 기반의 Webdriver 용 헤드리스 (GUI리스) 브라우저 중 가장 가벼운 구현입니다. HTML 문서를 모델링하고 일반 브라우저에서와 마찬가지로 페이지를 호출하고, 양식을 작성하고, 링크를 클릭 할 수있는 API를 제공합니다. 그것은 자바 스크립트를 지원하고 AJAX 라이브러리와 함께 작동합니다. 웹 사이트에서 데이터를 테스트하고 검색하는 데 사용됩니다.


예 : HTMLUnitDriver를 사용하여 http://stackoverflow.com/ 에서 질문 목록을 가져옵니다.


import java.util.List;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;
        
class testHeadlessDriver{
            private void getQuestions() {
                    WebDriver driver = new HtmlUnitDriver();
                    driver.get("http://stackoverflow.com/");
                    driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
                    List<WebElement> questions = driver.findElements(By.className("question-hyperlink"));
                    questions.forEach((question) -> {
                        System.out.println(question.getText());
                    });
                   driver.close();
                }
    }

다른 브라우저 (Mozilla Firefox, Google Chrome, IE)와 동일하지만 GUI가 없으므로 화면에 실행이 표시되지 않습니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow