python で、ファイルのアップロードができない

1,070 views
Skip to first unread message

tadashi nagao

unread,
Jan 27, 2015, 4:50:24 AM1/27/15
to selen...@googlegroups.com
質問ですみません。python でファイルのアップロードができません。Firefox35, windows8.1 です。seleniumIDE が出力するscript をつかっていますがうまくいきません。driver.find_element云々.send_keys でいけるとあるのですが、だめのようです。いけるという人もいるようです。もし、アップロードできている方いらっしゃいましたら、環境教えてください。言語は、python です。


伊藤望

unread,
Jan 27, 2015, 10:54:34 AM1/27/15
to selen...@googlegroups.com
長尾さん

伊藤です。

Pythonのドライバは使ったことがないのですが、
Pythonのドライバの問題よりも、
- sendKeysしているコマンドに不備がある(sendしている先の要素が違うなど)
もしくは、
- Webページ側の作りが特殊(ファイルダイアログのinput要素はhiddenで、
  見えている要素は実は別の要素、など)

という可能性のが高そうな気がしました。

tadashi nagao

unread,
Jan 27, 2015, 8:23:39 PM1/27/15
to selen...@googlegroups.com
伊藤さん

早速のコメントありがとうございます。

とりあえず、確認したところ、seleniumIDE からは、アップロードが動いています、
他の言語でうごくかどうかを次はチェックしてみます。

2015年1月28日水曜日 0時54分34秒 UTC+9 伊藤望:

tadashi nagao

unread,
Jan 28, 2015, 12:01:50 AM1/28/15
to selen...@googlegroups.com
長尾です。

追伸です。
Chromedriver をつかうとアップロードできました。

伊藤望

unread,
Jan 29, 2015, 11:42:03 PM1/29/15
to selen...@googlegroups.com
長尾さん

Windows8.1 + Python2 + Selenium IDEからエクスポートしたスクリプトで、
手元でちょっとやってみました。
テスト対象HTMLは、こんな簡易ページです。
-------------------
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>sample</title>
</head>
<body>
<form action="dummy" method="post" enctype="multipart/form-data">
  file:<br />
  <input type="file" name="upfile" size="30" /><br />
  <br />
  <input type="submit" value="upload" />
</form>
</body>
</html>
-------------------

Selenium IDEからエクスポートしたスクリプトだと、
driver.find_element_by_name("upfile").clear()
driver.find_element_by_name("upfile").send_keys("ファイルパス")
となっていて、確かにclearのところで
InvalidElementStateException: 
Message: invalid element state: 
Element must be user-editable in order to clear it.
というエラーで落ちました。
ファイルアップロードのinputのテキストはクリアできないというエラーだと思うので、
clearを消してsend_keysだけにしたら動きました。

とかではないでしょうか?
clear版はFirefoxもChromeも同じエラーになって、
clearを消したらFirefoxもChromeも動きましたが。

Selenium IDEからエクスポートしたスクリプトがそのまま動かないのは、ちょっと微妙ですね。。

On Wednesday, January 28, 2015 at 2:01:50 PM UTC+9, tadashi nagao wrote:
長尾です。

追伸です。
Chromedriver をつかうとアップロードできました。

tadashi nagao

unread,
Feb 5, 2015, 4:56:58 PM2/5/15
to selen...@googlegroups.com
伊藤さん

のんびりレスですみません。

検証ありがとうございました。

Firefox でもうまくいきました。ファイルのアップロードなので、clearのコマンドがエラーになるのですね。
これから、pythonでのテストしていきますので、よろしくおねがいします。


2015年1月27日火曜日 18時50分24秒 UTC+9 tadashi nagao:
Reply all
Reply to author
Forward
0 new messages