2013-03-06 29 views
8

Çerezleri ve otomatik olarak javascript uygulamasını destekleyen .NET için başsız bir tarayıcı önerilebilir mi?C# tarayıcı için javascript desteği ile başsız bir tarayıcı

+0

[WebBrowser denetimi] (http://msdn.microsoft.com/en-us/library/2te2y1x6.aspx)? –

+0

[WebClient run javascript] 'nin olası kopyası (http://stackoverflow.com/questions/5372277/webclient-runs-javascript) –

+0

Bunu nasıl kullanmayı planlıyorsunuz? – jrummell

cevap

4

.NET tabanlı bir başsız tarayıcının farkında değilim, ancak her zaman C/C++ olan PhantomJS ve QUnit ile JS'nin birim sınamalarında yardımcı olmak için oldukça iyi çalışıyor. Headless browser for C# (.NET)?

9

Selenium+HtmlUnitDriver/GhostDriver tam olarak aradığınız şey -

size yardımcı olabilir burada başka bir konuyla ilgili soru vardır. Oymimplified, Selenium otomasyon amaçlı çeşitli tarayıcıların kullanımı için kütüphanedir - test, kazıma, görev otomasyonu.

Gerçek bir tarayıcıyı çalıştırabileceğiniz farklı WebDriver sınıfları vardır. HtmlUnitDriver başsız bir tanesidir. GhostDriver, PhantomJS için bir WebDriver yazılımıdır, bu yüzden C# yazabilirken, PhantomJS ağır kaldırma işlemini gerçekleştirir.

Firefox için Selenium docs kod snippet'i, ancak GhostDriver (PhantomJS) veya HtmlUnitDriver kodu aynıdır. Windows makinede bu çalıştırırsanız sizin C# programlanmış olarak faaliyet gösterecek gerçek bir tarayıcı penceresi açılacaktır çünkü

using OpenQA.Selenium; 
using OpenQA.Selenium.Firefox; 
using OpenQA.Selenium.Support.UI; 

class GoogleSuggest 
{ 
    static void Main(string[] args) 
    { 
     // driver initialization varies across different drivers 
     // but they all support parameter-less constructors 
     IWebDriver driver = new FirefoxDriver(); 
     driver.Navigate().GoToUrl("http://www.google.com/"); 


     IWebElement query = driver.FindElement(By.Name("q")); 
     query.SendKeys("Cheese"); 
     query.Submit(); 

     WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10)); 
     wait.Until((d) => { return d.Title.ToLower().StartsWith("cheese"); }); 

     System.Console.WriteLine("Page title is: " + driver.Title); 

     driver.Quit(); 
    } 
} 

gerçek Firefox/Krom sürücüsünü kullanabilirsiniz. HtmlUnitDriver en hafif ve hızlıdır.

Linux'ta C# (FirefoxDriver) için Selenium'u Mono kullanarak başarıyla çalıştırdım. Ben htmlUnitDriver aynı zamanda diğerleri kadar iyi çalışacağını varsayalım, bu yüzden hıza ihtiyacınız varsa - Mono'ya gitmenizi öneririm (Windows üzerinde Visual Studio ile geliştirebilir, test edebilir ve derleyebilirsin, problem yok) + Selenium HtmlUnitDriver masaüstü olmadan Linux ana bilgisayarında çalışır .