目前我使用硒和phantomjs在C#中有下面的代碼:模擬瀏覽器C#和替代
public class Driver
{
static void Main()
{
using (var driver = new PhantomJSDriver())
{
driver.Navigate().GoToUrl("https://www.website.com/");
driver.Navigate().GoToUrl("https://www.website.com/productpage/");
driver.ExecuteScript("document.getElementById('pdp_selectedSize').value = '10.0'"); //FindElementById("pdp_selectedSize").SendKeys("10.0");
driver.ExecuteScript("document.getElementById('product_form').submit()");
driver.Navigate().GoToUrl("http://www.website/cart/");
Screenshot sh = driver.GetScreenshot();
sh.SaveAsFile(@"C:\temp\test.jpg", ImageFormat.Png);
}
}
}
我的目標是能夠將產品添加到我的車,然後自動結帳。屏幕截圖僅用於測試代碼是否成功工作。我的第一個問題是,我經常會遇到一個錯誤,它無法找到產品ID爲「pdp_selectedSize」的元素。我假設這是因爲webdriver尚未加載頁面,所以我正在尋找一種方法來持續檢查,直到找到它而不必設置特定的超時。
我也在尋找更快的替代品來代替無頭瀏覽器。我使用了無頭瀏覽器而不是http請求,因爲我需要某些cookie才能在頁面上籤出,並且這些cookie是通過頁面內的javascript設置的。如果有人推薦更快的方法,將不勝感激,謝謝!
查看[Selenium參考資料](http://www.seleniumhq.org/docs/04_webdriver_advanced.jsp)中的'ExpectedConditions'。 – Brian
是WebDriverWait的一部分嗎? – JBoy
它與'WebDriverWait'結合使用,是的。 – Brian