खोज…


फैंटमजस [सी #]

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 एक नई कंसोल विंडो खोलता है, जो वास्तव में ज्यादातर मामलों में नहीं चाहता था। सौभाग्य से, हम विंडो छिपा सकते हैं, और यहां तक कि PhantomJSOptions और PhantomJSDriverService का उपयोग करके प्रदर्शन में थोड़ा सुधार कर PhantomJSDriverService । नीचे पूर्ण कार्य उदाहरण:

// 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 जावास्क्रिप्ट समर्थन के बिना एक हल्का 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);
    }
}

जावा में हेडलेस ब्राउज़र

HTMLUnitDriver

HTMLUnitDriver HtmlUnit पर आधारित वेबड्राइवर के लिए हेडलेस (GUI- कम) ब्राउज़र का सबसे हल्का कार्यान्वयन है। यह HTML दस्तावेज़ों को मॉडल करता है और एक एपीआई प्रदान करता है जो आपको पृष्ठों को लागू करने, फ़ॉर्म भरने, लिंक पर क्लिक करने, आदि की अनुमति देता है जैसे आप अपने सामान्य ब्राउज़र में करते हैं। यह जावास्क्रिप्ट का समर्थन करता है और AJAX पुस्तकालयों के साथ काम करता है। इसका उपयोग वेबसाइट से डेटा के परीक्षण और पुनर्प्राप्ति के लिए किया जाता है।


उदाहरण: http://stackoverflow.com/ से प्रश्नों की सूची लाने के लिए HTMLUnitDriver का उपयोग।


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();
                }
    }

यह किसी भी अन्य ब्राउज़र (मोज़िला फ़ायरफ़ॉक्स, Google क्रोम, IE) के समान है, लेकिन इसमें GUI नहीं है, स्क्रीन पर निष्पादन दिखाई नहीं देता है।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow