Selenium Webdriver で file 属性にアクセスする

結果

例えば下のように書かれているフォームにアクセスしようとして

<input type="file" name="upFile" size="50" />

下の様に書いてもうまく動かなかった.

driver.findElement(By.name("upFile").sendKeys("./img/hoge.png"));

下のように書いたらうまくいった.

WebElement element = driver.findElement(By.xpath("//input[@type='file']"));
element.sendKeys("./img/hoge.png");

参考:http://stackoverflow.com/questions/9726005/

補足

ファイルのアップロードを Selenium にやらせようと思って今回つまづいた.
結局何やっているかって id とか name の属性名で指定するわけじゃなくて, 文字通り XPath で指定してる.

他にも

とかあるみたいだけれど今回使った方法が一番スマートな印象.