Phantomjs ドライバーを使用して、セレン Web ドライバー スクリプトをヘッドレスで実行しています。ファイルのアップロードに問題がありますが、通常のブラウザー (Firefox または Chrome) では OS ダイアログ ボックスがポップアップ表示され、マシン内のファイルを見つけてアップロードできるようになります。GhostDriver (Phantomjs Driver) でそれを行う方法は? ありがとう
3586 次
4 に答える
0
私は同じ問題を抱えており、同じ質問を投稿しました。sendKeys() メソッドを使用すると、PhantomJS がハングアップします。
ここに問題が記録されています - https://github.com/ariya/phantomjs/issues/10993
この問題に関するコメントの1つは、以下のステートメントが機能したと述べています-
(PhantomJSDriver) driver.executePhantomJS("var page = this; page.uploadFile('input[type=file]', 'path to file');");
上記の解決策を試すこともできますが、うまくいく場合とうまくいかない場合があります。
于 2015-03-30T06:51:58.690 に答える
0
「複数」属性が設定されている場合、このコードはアップロードに役立ちました:
protected void uploadFile(CharSequence... keys) {
if (((WrapsDriver) driver).getWrappedDriver() instanceof PhantomJSDriver) {
StringBuffer s = new StringBuffer(keys.length);
for (int index = 0; index < keys.length; index++) {
s.append(keys[index].toString());
}
((PhantomJSDriver) ((WrapsDriver) driver).getWrappedDriver()).executePhantomJS(
String.format("var page = this; page.uploadFile(arguments[0], '%s');", s.toString()), getElement());
} else {
getElement().sendKeys(keys);
}
}
于 2015-08-18T16:04:10.067 に答える