Quantcast
Channel: かずきのBlog@hatena
Viewing all articles
Browse latest Browse all 1387

Selenium C#でファイルダイアログに挑む

$
0
0

Seleniumを使ってWebサイトを操作してるのですが、オシャレなサイトのファイルアップロードでinputタグを隠ぺいしていて、ファイルダイアログをどうしても出さないとファイルをアップロード出来ない作りになっていました。

普通のinputタグについては、簡単にできるようになってるみたいです。

要はfileのinputタグを取得してSendKeysでファイルのパスを送り付ければOKみたいです。(リンク先はJavaだけどわかるよね)

オシャレサイト攻略は…

上記方法でいけばいいのですが、オシャレサイトは、input type="file"のタグが隠ぺいされていてどうしようもない。そこで、我らがWindows FormsのSendKeysを使って以下のようにしてダイアログを操作しました。

this.internetExplorerDriver.Url = "オシャレサイトのURL";
var formmain = this.internetExplorerDriver.FindElement(By.Id("formのID"));
// ファイルアップロードのDIVタグを取得してクリックしてファイルダイアログを出す
formmain.FindElements(By.ClassName("async-upload__picker")).First().Click();

// SendKeysを使ってファイル名をタイプしてEnter
SendKeys.SendWait(@"c:\Users\Kazuki\Pictures\image.PNG");
SendKeys.SendWait("{Enter}");

// そしてサブミット
var button = formmain.FindElements(By.TagName("img")).Last();
button.Click();

参考


Viewing all articles
Browse latest Browse all 1387

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>