私はjavascript/javaの開発者です。セレンのwebdriverオートメーションフレームワークがファイルシステムからファイルをアップロードする方法を理解しようとしています。セキュリティ違反であるため、javascriptでファイル入力を設定することは不可能です。しかし、どういうわけかwebdriverは次のコマンドでこれを行うことができます:セレンウェブドライブはどのようにファイルをブラウザにアップロードしますか?
driver.setFileDetector(new LocalFileDetector());
WebElement upload = driver.findElement(By.id("myfile"));
upload.sendKeys("/Users/sso/the/local/path/to/darkbulb.jpg");
driver.findElement(By.id("submit")).click();
そこで、キーを送信して値を設定していますか?理解できません。私はここで見つけたソースコードを見てきました: http://code.google.com/p/selenium/source/checkout 私はまだ彼らがこれを行う場所を見つけることができません。
編集:私の質問はセレンでこれを行う方法ではありませんが、どのようにセレンの開発者がこれを可能にしましたか?彼らはどのようにしてJavaScriptのセキュリティ制限を回避しましたか?彼らはどのようにファイルをアップロードしていますか?
私の最初の推測では、ボタン要素がそれに「の値」を持っていることである、とのSendKeysは、値に文字を追加しますか? – djangofan