FirefoxDriverを使用してテストを作成している間、
javascriptとcssが実行されているため、ページの読み込みが非常に遅いことがわかりました。とにかくこれを無効にすることはありますか?プロファイルにNoscriptプラグインをインストールすることも可能ですか?
さらに、sendKeys()は、実際にテキストを入力します。ただし、これは長いテキストの場合は非常に遅く、とにかく入力ボックスにすべての文字列を即座に入力しますか?
あなたはでjavaScriptを無効にすることができますFirefoxProfile
:
FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("javascript.enabled", false);
WebDriver driver = new FirefoxDriver(profile);
CSSを無効にする方法はないと思いますが、これはあなたがすべきことではありません-これはあなたのウェブアプリケーションを壊すかもしれませんし、JavaScriptを無効にすることもこれをするかもしれません。
テキストフィールドの値を直接設定する方法はありません。WebDriverは、実際のユーザーがブラウザを「運転」していることをシミュレートするように設計されています。そのため、sendKeysしかありません。
ただし、JavaScript呼び出しを介して要素の値を設定できます(もちろん、無効にしない場合)。これは長いテストでは高速ですが、これはユーザーインタラクションのエミュレーションではないため、一部の検証がトリガーされない可能性があるため、注意して使用してください。
private void setValue(WebElement element, String value) {
((JavascriptExecutor)driver).executeScript("arguments[0].value = arguments[1]", element, value);
}
そしてそれを使用します:
WebElement inputField = driver.findElement(By...);
setValue(inputField, "The long long long long long long long text......");
Pythonを使用したSeleniumWebDriverテストでFirefoxに画像をロードせずCSSをレンダリングしないも参照してください。
CSSと画像を非表示にするには:
FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("permissions.default.stylesheet", 2);
profile.setPreference("permissions.default.image", 2);
FirefoxDriver browser = new FirefoxDriver(profile);
また、PhantomJSはユーザーインターフェイスなしのWebKitブラウザーであるため、FireFoxやChromeよりも非常に高速です。PhantomJSにはWebドライバーのサポートがあります。