現在、私はC#でのセレンとphantomjsを使用して、次のコードを持っている:ヘッドレスブラウザ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要求の代わりにヘッドレスブラウザを使用しました。これらのクッキーはページ内のjavascriptによって設定されます。誰かが速い方法のためのreccommendationを持っているなら、それは非常に感謝します、ありがとう!
[Selenium Reference](http://www.seleniumhq.org/docs/04_webdriver_advanced.jsp)の 'ExpectedConditions'を見てください。 – Brian
WebDriverWaitのその部分ですか? – JBoy
これは 'WebDriverWait'と組み合わせて動作します。 – Brian